본문 바로가기
프로그래밍/Python

Python 문법 3 - Flow Control(흐름 제어)

by pentode 2018. 4. 3.

파이썬에서 프로그램의 흐름을 제어할 수 있는 제어문에 대해 알아보겠습니다.

 

1. if 문

 

if 문장은 조건에 따라 흐름을 분기 할 수 있는 문장 입니다. 다음 예처럼 if 조건:, elif 조건:, else: 을 사용할 수 있습니다.

 

if문 실행화면

 

>>> 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
>>>

 

이상으로 파이썬에서 흐름제어에 대해 알아보았습니다.

반응형