파이썬에서 프로그램의 흐름을 제어할 수 있는 제어문에 대해 알아보겠습니다.
1. if 문
if 문장은 조건에 따라 흐름을 분기 할 수 있는 문장 입니다. 다음 예처럼 if 조건:, elif 조건:, else: 을 사용할 수 있습니다.
>>> x = int(input("정수를 입력해 주세요: "))
정수를 입력해 주세요: 42
>>> if x < 0:
x = 0
print("음수는 0으로 변환")
elif x == 0:
print("0 입력")
elif x == 1:
print("1 입력")
else:
print("1 초과")
1 초과
>>>
음수가 입력되면 if x < 0: 구문이 실행되고 0 이나 1일 입력되면 elif 부분이 실행됩니다. 2이상의 값이 입력되면 eslse: 부분이 실행됩니다. elif 부분은 필요한 만큼 반복될 수 있습니다.
2. for 문
파이썬의 for문은 list나 string 같은 시퀀스 타입의 각항목에 대해 반복 처리를 할 수 있게 해 줍니다.
>>> colors = ['red', 'blue', 'yellow']
>>> for item in colors:
print(item, len(item))
red 3
blue 4
yellow 6
>>>
만약 시퀀스내의 항목에 대한 반복 처리중 시퀀스의 내용을 변경해야 할 경우 복사된 시퀀스를 사용하는 것이 좋습니다. 처리중 변경된 사항이 문제를 일으킬 수 있기 때문입니다.
>>> for item in colors[:]: # 슬라이스로 만들어진 사본으로 작업함.
if len(item) > 5:
colors.insert(0, item)
>>> colors
['yellow', 'red', 'blue', 'yellow']
>>>
특정 값의 범위를 만들기 위해서는 range() 함수를 사용합니다.
>>> for i in range(5):
print(i)
0
1
2
3
4
>>>
- range(5) 는 0부터 4까지 범위를 만듭니다.
- range(1, 5) 는 1부터 4까지 범위를 만듭니다.
- range(0, 5, 2) 는 0, 2, 4 값을 만듭니다.
시퀀스를 처리하면서 숫자 인덱스가 필요할 때는 다음과 같이 사용할 수 있습니다.
>>> colors = ['red', 'blue', 'yellow']
>>> for i in range(len(colors)):
print(i, colors[i])
0 red
1 blue
2 yellow
>>>
3. while 문
while 조건: 형식에서 조건이 참이 동안 실행됩니다.
>>> i = 3
>>> while i > 0:
print(i)
i -= 1
3
2
1
>>>
4. break, continue 문
- for, while 루프내에서 break 를 만나면 루프를 바로 종료 합니다.
- for, while 루프내에서 continue를 만나면 나머지 부분을 실행하지 않고, 다음 루프로 넘어갑니다.
5. 루프에 대한 else: 문과 pass 문
if가 아닌 for, while 루프에 대해 else: 문을 사용할 수 있습니다. 이 경우 else: 문은 break 에 의해 강제로 종료되는것이 아니라, for 문이 모두 항목을 소진하였거나, while문에 False를 만나서 종료될 때 실행됩니다.
>>> for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, '=', x, '*', n//x)
break
else:
print(n, '은 소수 입니다.')
2 은 소수 입니다.
3 은 소수 입니다.
4 = 2 * 2
5 은 소수 입니다.
6 = 2 * 3
7 은 소수 입니다.
8 = 2 * 4
9 = 3 * 3
>>>
위 예에서 else:는 if에 대한 부분이 아니라 내부의 for문에 대한 else: 입니다. 내부의 for 루프가 break에 의해 종료되지 않을때만 else: 부분이 실행됩니다.
pass 문은 구문이 필요하지만 프로그램이 아무런 조치를 하지 않을 때 사용할 수 있습니다.
>>> while True:
pass # 키보드 인터럽트 대기 중(Ctrl + C)
KeyboardInterrupt
>>>
이상으로 파이썬에서 흐름제어에 대해 알아보았습니다.
'프로그래밍 > Python' 카테고리의 다른 글
파이썬 문법 5 - 람다(lambda) 함수 (7) | 2018.04.04 |
---|---|
파이썬 문법 4 - 함수(function) (0) | 2018.04.04 |
Python 문법 2 - 식별자, 데이터 타입, 형변환, 연산자 (0) | 2018.04.03 |
Python 문법 1 - comment, 문장, 블럭, 들여쓰기 (0) | 2018.04.03 |
Python 3.6과 PyDev 설치하기 (0) | 2018.04.03 |