Control statement
if문¶
특정 조건의 참/거짓에 따라 프로그램의 흐름을 분기시키기 위해 사용한다.
if문은 조건문이라고도 한다.
기본 구조¶
if문의 조건식이 True면 그 아래에 정의한 명령문을 수행하고, False이면 else문 아래에 정의한 명령문을 수행한다.
조건식은 논리형으로 결과가 나오는 연산이므로, 이와 관련된 연산자들을 숙지해야만 한다. 만약 이 부분이 덜 숙지되어 있다면 이전 교안을 참고하도록 하자.
주의사항¶
-
들여쓰기
들여쓰기를 한 칸이라도 더하거나 덜하더라도 오류가 발생할 수 있으므로 어디서 들여쓰기 해야하는 지 꼭 숙지해야 한다.
-
콜론
if 조건문 뒤에는 반드시 콜론(:)이 들어가야 한다.
다중 조건¶
if문과 else문을 사용하면 단지 두 가지의 경우만을 판단할 수 있는데, ‘elif’를 사용하면 그 이상의 경우도 판단할 수 있다.
>>> backpack = ['notebook', 'charger', 'pencil']
>>> if 'charger' in backpack:
... print("충전기로 충전해라")
... elif 'powerbank' in backpack:
... print("보조배터리로 충전해라")
... else:
... pass # 아무것도 실행하지 않는다.
...
충전기로 충전해라
만약 핸드폰을 충전하려할 때, 가방에 어떤 물건이 들었는지에 따라서 출력되는 문장이 달라지는 프로그램은 다음과 같이 짤 수 있을 것이다.
while문¶
조건이 참(True)일때 명령문을 반복하여 수행한다.
기본 구조¶
조건식은 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씩 더하면서 나무를 몇번 찍었는지 출력하는 명령문을 반복하여 실행하게 한다.
보조 제어문¶
파이썬에서 반복문에 사용할 수 있는 보조 제어문으로는 break
와 continue
가 존재한다. 사용하는 방법은 예시를 통해서 살펴보도록 하겠다.
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문¶
기본구조¶
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문과 함께 사용하는 경우가 많다.
range(1, 11)
은 숫자 1부터 10까지(1이상 11미만)의 수로 구성된 리스트를 생성한다. 따라서 변수 i
에는 1부터 10까지 차례로 하나씩 대입되고 이것을 number에 더하는 것으로 1~10의 합을 구할 수 있게 된다.
range(10)은 range(0, 10)와 같다. 즉 0~9까지의 수로 구성된 리스트가 생성됨.
Created : 15 janvier 2020