Skip to content

Control statement

if문

특정 조건의 참/거짓에 따라 프로그램의 흐름을 분기시키기 위해 사용한다.

if문은 조건문이라고도 한다.

기본 구조

if 조건식:
    수행할 명령문
    ...
else:
    수행할 명령문
    ...

if문의 조건식이 True면 그 아래에 정의한 명령문을 수행하고, False이면 else문 아래에 정의한 명령문을 수행한다.

조건식은 논리형으로 결과가 나오는 연산이므로, 이와 관련된 연산자들을 숙지해야만 한다. 만약 이 부분이 덜 숙지되어 있다면 이전 교안을 참고하도록 하자.

주의사항

  1. 들여쓰기

    들여쓰기를 한 칸이라도 더하거나 덜하더라도 오류가 발생할 수 있으므로 어디서 들여쓰기 해야하는 지 꼭 숙지해야 한다.

  2. 콜론

    if 조건문 뒤에는 반드시 콜론(:)이 들어가야 한다.

다중 조건

if문과 else문을 사용하면 단지 두 가지의 경우만을 판단할 수 있는데, ‘elif’를 사용하면 그 이상의 경우도 판단할 수 있다.

>>> backpack = ['notebook', 'charger', 'pencil'] 
>>> if 'charger' in backpack:
...     print("충전기로 충전해라")
... elif 'powerbank' in backpack:
...     print("보조배터리로 충전해라")
... else:
...     pass # 아무것도 실행하지 않는다.
...
충전기로 충전해라

만약 핸드폰을 충전하려할 때, 가방에 어떤 물건이 들었는지에 따라서 출력되는 문장이 달라지는 프로그램은 다음과 같이 짤 수 있을 것이다.

while문

조건이 참(True)일때 명령문을 반복하여 수행한다.

기본 구조

while 조건식:
    수행할 명령문
    ...

조건식은 if문과 동일한 방법으로 작성된다.

사용 예시

“열 번 찍어 안 넘어가는 나무 없다”는 속담을 파이썬 프로그램으로 만든다면 다음과 같을 것이다.

>>> count = 0
>>> while count < 10:
...     count = count + 1 # count에 1씩 더하기
...     print("나무를 %d번 찍었습니다." % count)
...     if count == 10:
...         print("나무가 넘어갔습니다.")
...
나무를 1 찍었습니다.
나무를 2 찍었습니다.
나무를 3 찍었습니다.
나무를 4 찍었습니다.
나무를 5 찍었습니다.
나무를 6 찍었습니다.
나무를 7 찍었습니다.
나무를 8 찍었습니다.
나무를 9 찍었습니다.
나무를 10 찍었습니다.
나무가 넘어갔습니다.

위 코드는 count라는 변수를 0으로 초기화해두고, count가 10되기 직전까지 1씩 더하면서 나무를 몇번 찍었는지 출력하는 명령문을 반복하여 실행하게 한다.

보조 제어문

파이썬에서 반복문에 사용할 수 있는 보조 제어문으로는 breakcontinue가 존재한다. 사용하는 방법은 예시를 통해서 살펴보도록 하겠다.

break문

반복문을 완전히 빠져나가는 제어문

>>> count = 0
>>> while True:
...     count = count + 1 # count에 1씩 더하기
...     print("나무를 %d번 찍었습니다." % count)
...     if count == 10:
...         print("나무가 넘어갔습니다.")
...         break # 반복문 탈출
...
나무를 1 찍었습니다.
나무를 2 찍었습니다.
나무를 3 찍었습니다.
나무를 4 찍었습니다.
나무를 5 찍었습니다.
나무를 6 찍었습니다.
나무를 7 찍었습니다.
나무를 8 찍었습니다.
나무를 9 찍었습니다.
나무를 10 찍었습니다.
나무가 넘어갔습니다.

위 코드는 while문의 조건식이 항상 True이므로 명령문이 무한정 반복하게 될 것이다. 이런 경우에 반복문을 빠져나오기 위해서는 break문을 사용해야 한다.

if count == 10라는 조건문을 한 번 보자. 이 조건이 만약 참이라면 그 아래에 있는 명령문이 실행되면서 “나무가 넘어갔습니다.”를 출력하고 break문이 실행되면서 while문을 빠져나온다.

continue문

반복문의 조건식으로 돌아가는 제어문

>>> count = 0
>>> while True:
...     count = count + 1
...     if count % 2 != 0: # 홀수일 경우
...             continue # 아래 명령문 수행하지 않는다
...     print("나무를 %d번 찍었습니다." % count)
...     if count == 10:
...             print("나무가 넘어갔습니다.")
...             break
...
나무를 2 찍었습니다.
나무를 4 찍었습니다.
나무를 6 찍었습니다.
나무를 8 찍었습니다.
나무를 10 찍었습니다.
나무가 넘어갔습니다.

위 코드는 홀수의 경우에는 명령문을 계속 수행하지 않고 반복문의 조건식으로 돌아가게 한다. 그렇기 때문에 나무를 짝수번 찍은 것만 출력한다.

for문

기본구조

for 변수 in 리스트(튜플, 문자열):
    실행할 명령문
    ...

5명의 수험생이 시험을 보았을 때, 점수 60점을 넘기면 합격을 통보해주는 프로그램을 만들어보면 다음과 같다.

>>> score = [63, 32, 67, 54, 80]
>>> n = 0
>>> for i in score:
...     n = n + 1
...     if i<60: continue
...     print("%d번 수험생 합격입니다."%n)
...
1 수험생 합격입니다.
3 수험생 합격입니다.
5 수험생 합격입니다.

while문과 마찬가지로 continue문을 사용할 수 있다.

range 함수

range 함수는 숫자 리스트를 만들어주는 함수로 for문과 함께 사용하는 경우가 많다.

>>> number
>>> for i in range(1, 11):
...     number = number + i
...
>>> print(number)
55

range(1, 11)은 숫자 1부터 10까지(1이상 11미만)의 수로 구성된 리스트를 생성한다. 따라서 변수 i에는 1부터 10까지 차례로 하나씩 대입되고 이것을 number에 더하는 것으로 1~10의 합을 구할 수 있게 된다.

range(10)은 range(0, 10)와 같다. 즉 0~9까지의 수로 구성된 리스트가 생성됨.


Last update : 8 mai 2023
Created : 15 janvier 2020