본문 바로가기

프로그래밍/Python

[요약] 파이썬(Python) 흐름제어 - 반복문

[요약] 파이썬(Python) 흐름제어 - 반복문


파이썬에서 사용하는 for, while 명령어를 이용해 다양한 반복 및 시퀀스 자료형에 대한 반복 처리를 할 수 있다.



# 파이썬 흐름제어 - 반복문 사용
# 기본 반복문 : For, While
# 반복문 실습
# 코딩의 핵심 --> 조건 해결 중요

v1 = 1

while v1 < 11:
    print("v1 is ", v1)
    v1 += 1

"""
v1 is  1
v1 is  2
v1 is  3
v1 is  4
v1 is  5
v1 is  6
v1 is  7
v1 is  8
v1 is  9
v1 is  10
"""


for v2 in range(10):  # range는 0 부터 시작해서 지정된 숫자 -1까지 유효함
    print("v2 is ", v2)
"""
v1 is  0
v1 is  1
v1 is  2
v1 is  3
v1 is  4
v1 is  5
v1 is  6
v1 is  7
v1 is  8
v1 is  9
"""
for v3 in range(1, 10):
    print("v3 is ", v3)
"""
v1 is  1
v1 is  2
v1 is  3
v1 is  4
v1 is  5
v1 is  6
v1 is  7
v1 is  8
v1 is  9
"""

# 1 ~ 100까지의 합계를 구하는 예제
sum1 = 0
cnt1 = 1

while cnt1 <= 100:
    sum1 += cnt1
    cnt1 += 1

print('1~100 : ', sum1) # 5050
# 다른방법
print('1~100 : ', sum(range(1,101))) # 5050
# 다른방법2 2씩 증가...
print('1~100 : ', sum(range(1,101, 2))) # 2500


# 시퀀스 자료형(순서가 있는)에 대한 반복 
# 가능한 자료형 대상 : 문자열, 리스트, 튜플, 집합, 사전
# iterable 리턴함수 : range, reversed, enumerate, filter, map, zip

names = ["Kim", "Park", "Chio", "Ryu"]

for name in names:
    print("You are name : ", name)

""" result
You are name :  Kim
You are name :  Park
You are name :  Chio
You are name :  Ryu
"""

words = "dreams"

for s in words:
    print("Word : ", s)
""" result
Word :  d
Word :  r
Word :  e
Word :  a
Word :  m
Word :  s
"""

# dictionaly example
my_info = {
        "name" : "Kim",
        "age" : 33,
        "city" : "Seoul"
}

for key in my_info:
    print("my_info", key)
""" result
my_info name
my_info age
my_info city
"""

for key in my_info.values():
    print("my_info", key)
"""
my_info Kim
my_info 33
my_info Seoul
"""

for key in my_info.keys():
    print("my_info", key)
"""
my_info name
my_info age
my_info city
"""

for k, v in my_info.items():
    print("my_info", k, v)
"""
my_info name Kim
my_info age 33
my_info city Seoul
"""

name = "KnennRY"
for n in name:
    if n.isupper():
        print(n.lower())
    else:
        print(n.upper())
"""
k
N
E
N
N
r
y
"""

# break
# for문에서 break에 의해서 종료되지 않고 전체를 순회해서 정상 종료시에는 for문의 else: 절이 실행된다.
numbers = [14, 3, 5, 12, 29, 56, 11, 18]

for n in numbers:
    if n==29:
        print('찾았다 : 29')
        break
    else:
        print('못찾았다 : !29')
else:
    print('not found 29!....')

""" output
못찾았다 : !29
못찾았다 : !29
못찾았다 : !29
못찾았다 : !2
"""

# continue

lt = ["1", 2, 5, True, 4.3, complex(40)]

for v in lt:
    if type(v) is float:
        print('float type vlaue : ', v)
        continue
    print('Type : ', type(v))

""" output
Type :  <class 'str'="">
Type :  <class 'int'="">
Type :  <class 'int'="">
Type :  <class 'bool'="">
float type vlaue :  4.3
Type :  <class 'complex'="">
"""


name = "Niceman"
print(reversed(name))       # <reversed object="" at="" 0x0000018848041c48="">
print(list(reversed(name))) # ['n', 'a', 'm', 'e', 'c', 'i', 'N']
print(tuple(reversed(name)))# ('n', 'a', 'm', 'e', 'c', 'i', 'N')