파이썬 중급4 (while - 반복문)
파이썬 while문
파이썬 while문
우리가 "Hello world"라는 말을 100번 print 한다고 한다면
print("Hello world")를 100번 입력하기에는 시간도 아깝고 힘들 것입니다.
그래서 나온 것이 반복문이며
while반복문은 조건식이 참인 동안에 while문 안에 존재하는 코드를 계속해서 실행합니다.
while문의 선언 법
while문도 조건식이 참인 동안에 실행하기에 if문과 동일하게 뒤에 조건문이 따라옵니다.
1
2
3
4
|
i = 0 #i를 초기화 해줍니다.
while i<100: #i가 100보다 작을때 아래의 코드를 계속 실행합니다.
print("Hello wolrd {0}".format(i)) #몇번째 "Hello world인지 i로 표시합니다.
i+=1 #i의 값을 1증가 시킵니다.
|
cs |
출력 결과를 본다면 "Hello world"가 0~99까지 총 100번 출력된 것을 확인할 수 있습니다.
while문에서 요점은 초기식
즉 반복할 변수의 값을 초기화해줘야 하며
변화식으로 반복할 변수의 값을 변화시켜 줘야 합니다.
그렇지 않으면 while문은 반복할 변수의 값이 변하지 않아 계속 진행될 것이고
무한 루프 즉 버그입니다.
while문 강제로 빠져나오기
만약 조건식이 참인데도 while문을 빠져나오려면 어떻게 해야 할까요?
while문을 강제로 멈추는 것은 break문이며 while문이 참 이어도 멈추게 하는 함수입니다.
우리가 자판기에서 콜라를 뽑아 먹는다고 가정하고
콜라는 자판기에 10개 들어 있고 가격은 1000원이라고 해보겠습니다.
1
2
3
4
5
6
7
8
9
10
|
coke = {'개수':10,'가격':1000} #콜리의 개수와 가격을 정해줍니다.
money = int(input("돈을 입력하세요 : ")) #사용자에게 돈을 입력받습니다.
while money>=coke['가격']: #돈이 콜라의 가격인 1000원보다 크거나 같을때 밑에 코드를 실행합니다.
coke['개수']-=1 #콜라의 개수를 1개 뺍니다.
money-=coke['가격'] #사용자의 돈을 뺍니다.
print("콜라를 샀습니다. 남은 콜라 : %d"%coke['개수']) #개수는 정수이기때문에 %d로 표현 가능합니다.
print("남은 돈 : %d"%money) #format함수를 사용해도 무관합니다.
if coke['개수']==0: #콜라의 개수가 0일때 실행됩니다.
print("콜라가 다 떨어져 자판기를 종료합니다.") #자판기를 종료한다는 메시지를 출력합니다.
break; #while문을 멈춥니다.
|
cs |
이번엔 딕셔너리를 이용해 좀 더 멋지게 코드를 짜 봤습니다.
돈을 10000원 이하로 입력하면 콜라가 다 떨어져 자판기를 종료한다는 말이 나오지 않을 겁니다.
break문은 while문의 조건식이 참 이어도 코드를 멈춥니다.
이번에는 앞에서 배운 것들을 종합하여 코드를 짜보았습니다.
이해가 안 된다면 앞으로 돌아가서 그 부분만 다시 보고 오시면 되겠습니다.
수고하셨습니다.
요약
1.while문은 조건식이 거짓일 때까지 실행된다.
2.break문은 while문의 조건식이 참 이어도 실행을 멈춘다.
숙제
1. 앞에서 elif 편에서 배운 자판기를 오늘 배운 while문으로 가격을 정하고
돈이 최소 금액 이하일 때까지 음료를 뽑는 자판기를 만들어 주세요.
다음 시간에는 반복문인 for문을 알아보겠습니다.