if문이 yes or no, true or false로 조건을 받아 실행하는 조건문인 반면 while은 if와 같이 파이썬의 제어문이면서 반복해서 실행문을 수행해야 할 때 사용할 수 있다.
while 반복문이란?
while은 영문법을 한글로 가져오면 ~~ 하는 동안에, ~~ 하는 중에 이렇게 해석된다.
파이썬에서도 마찬가지로 예를들면 [ while a < 5 : ] 이렇게 쓰인 조건식은 a가 5보다 작은 동안에 로 해석할 수 있다. 그럼 while은 a가 5보다 작은 동안에 조건식을 반복한다.
예문
num = 0 #반복 횟수를 저장할 변수 선언
while num < 5 : #num이 5보다 작은 동안에
num = num + 1 #실행문을 반복 (num=num+1은 반복횟수 1씩 증가)
print("%d번 반복했습니다." % num) #실행문을 반복 (num만큼 반복했다는 출력)
if num == 5 : #만약 num이 5와 같아지면(while문을 5번 반복하면)
break #while 반복문 나가기
먼저 반복한 횟수를 저장할 정수 0을 변수에 넣어 만들어주고
while 조건식에 들어가서는 한바퀴 돈다는 표시의 +1을 해주어 num을 0에서 1로 만들어준다.
' if num == 5: ' 이 문장으로 num이 5가 될 때까지 print문장을 실행하다 if를 만족하면 break로 끝난다.
break와 continue
break는 반복문에서 강제로 빠져나갈 수 있게 도와주는 역활을 한다. 위의 예문에도 사용되었지만 예를 들어 1부터 50까지 출력하는 프로그램이 있다고 생각해 보자.
num = 0 # 반복 횟수를 저장할 변수 선언
while num < 50 : # num이 5보다 작은 동안에
num = num + 1 # 계속 num에 1씩 더해 넣음.
print("%d" % num) # 숫자 출력출력
if num == 50 : # 만약 num이 50와 같아지면(while문을 50번 반복하면)
break # 빠져 나간다
쉽다. 50보다 작은 동안만 반복하다 num이 50이되어 조건이 만족되면 break문으로 빠져나가 끝이 난다.
반면에 continue문은 끝을 내는 대신 특정 조건에 while문 처음으로 돌아가 다시 반복할 수 있게 도와준다.
1부터 50까지 출력하지만 홀수(1, 3, 5, 7, 9....)만을 가져와 보여주는 프로그램을 만들어보자.
num = 0
while num < 50 :
num = num + 1
if num % 2 == 0 : continue # num을 2로나눌 때 0으로 나눠떨어지면(짝수) while문 처음으로 돌아감
print("%d" % num) # 위 조건문으로인해 짝수는 여기까지 닿지 않음(홀수만 출력)
# 위 코드 실행 결과
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
41
43
45
47
49
continue문으로 인해 홀수만 걸러져서 출력된다.
continue를 쓰지 않으면 당연하지만 짝수만 출력될 것이다.
파이썬에서 일반 나눗셈은 ' / ' 이고 ' % ' 는 두 값을 나눗셈해 준 뒤 나오는 나머지를 반환해주는 연산자이다.
3 / 2 = 1.5
3 % 2 = 1
비교 연산자와 산술 연산자에 관한 내용은
에 설명이 되어 있다.
무한루프
while True:
print("무한 루프를 하고 있습니다.")
조건식 자리에 Ture(참)을 써넣어 주면 아래 실행문이 무한히 반복된다.
'Ctrl + c'키로 빠져나갈 수 있다.
'IT > 파이썬3 공부' 카테고리의 다른 글
[파이썬 기초] 함수선언 def 예약어의 사용법 (0) | 2020.05.19 |
---|---|
[파이썬 기초] for 반복문 기초 (0) | 2020.05.15 |
[파이썬 기초] if 조건문 기본 (0) | 2020.05.11 |
[파이썬 기초] 딕셔너리와 관련함수 (0) | 2020.05.10 |
[파이썬 기초] 튜플 인덱싱과 슬라이싱, 함수 (0) | 2020.05.05 |
최근댓글