반응형
for 문은 몇 번을 반복할지 알고 있는 경우에 사용하지만, while 문은 반복의 횟수가 명확하지 않을 때 사용한다.
1) while 조건 else 구문
while 조건문과 함께 쓰여 조건이 참인 경우 해당 실행 명령 블록을 계속 반복하고, 조건이 거짓일 경우 반복을 멈추게 된다. 예를 들어 i 가 1부터 시작해서 10보다 작을 때까지 반복하라고 while 문을 구성하면 i 가 10이되면 더 이상 반복문을 실행하지 않고 멈추거나 다른 명령문을 수행하게 된다.
while <조건문>:
<실행문1>
else:
<실행문2>
# while 문을 사용해 1부터 10까지 더하기
i = 1 # 반복을 시작할 초기값 지정
sum = 0 # 합계 초기값 지정
while i <= 10: # 10보다 작거나 같을 때까지 반복
sum += i # sum 값에 i 값을 합쳐서 다시 sum에 저장
i += 1 # 다음 반복 값을 i에 저장
else:
print(sum)
# for 문을 사용해 1부터 10까지 더하기
sum = 0
for i in range(11):
sum += i
else:
print(sum)
2) while 문에 if 조건문 추가
while 문에 반복하기 위한 조건문을 쓰지만, 반복값을 다시 if 조건문으로 통제할 수 있다. 예를 들어 i 가 1보다 크다면 반복하라고 while 문을 썼다면, 무한 반복이 일어날 것이다. 이때 if 문을 사용해 i 의 값을 제어할 수 있다.
다음은 스타벅스에서 커피를 주문하고 수령하기 위해 대기를 하고 있는 예제이다. 나의 대기 번호는 10번이고 만약 3번 불러서 안오면 커피를 폐기한다고 한다.
waiting_no = int(input("대기번호:")) # 대기 번호 10번 입력
call_no = 3 # 호출 횟수 3회(최기값)
while call_no >= 1: # 반복할 호출 조건
print(f"대기번호 {waiting_no}번 손님, 카운터로 오십시오")
call_no -= 1 # call_no = call_no - 1 : 호출 1회씩 감소
if call_no == 0: # 호출 3번을 다했다면 다음 명령문 실행
print("커피를 폐기하겠습니다!")
else:
print(f"호출 {call_no}번 남았습니다") # 아직 호출이 남았으면 몇 번 남았다고 알려줌.
3) while True: 무한 루프
while 문이 for 문과 구별되는 가장 큰 특징은 무한 반복을 할 수 있다는 것이다. while 문을 쓸때 조건을 잘 못 주면 무한 루프에 빠지기도 하고, 몇 번을 반복할지 알 수 없을 때 무한 루프를 돌려놓고 적당한 시기에 break 를 걸여서 빠져 나오기도 한다.
break를 반복문을 강제로 멈추게 하는 명령문으로 이와 비교되는 pass와 함께 다음 블로그에서 자세히 다루도록 하자.
while True:
print("코랩에서는 Ctrl+M, Z를 누르면 무한 루트에서 탈출할 수 있습니다") # () 문장이 계속 무한 반복 됨.
반응형
'파이썬' 카테고리의 다른 글
[ 코랩과 파이썬 ] 10. python 표준 입출력 input, print (0) | 2023.01.12 |
---|---|
[ 코랩과 파이썬 ] 9. python 반복문 제어 break, continue, pass (2) | 2023.01.12 |
[ 코랩과 파이썬 ] 7. python 반복문 for 문, 한 줄 for 문과 if 문 (0) | 2023.01.12 |
[ 코랩과 파이썬 ] 6. python 조건문 if, elif, else, 한 줄 if 문 (0) | 2023.01.12 |
[ 코랩과 파이썬 ] 5. python 자료 인덱싱 indexing과 슬라이싱 slicing (0) | 2023.01.12 |