본문 바로가기

파이썬3/기초

파이썬 while문

728x90
반응형

반복해서 어떤 함수를 실행 할 때 사용하는 것 중 하나는 while문이다.

그래서 while반복문이라고도 불린다.

 

아래는 while문의 기본 구조이다.

while 조건문:
	do-something1()
    do-something2()
    do-something3()
    .... # 생략표현
    do-somethingN()

 

GPU를 사기 위해 돈을 번다고 할 때 시급 1만원에 따라 벌어야하는 과정을 while문으로 표현하면 아래와 같다.

money = 0
gpu_price = 9.5 * 1e+5 # 95만원
hour_pay = 1e+4 # 1만원
working_hour = 0 # 일한 시간
while money < gpu_price:
	working_hour += 1
    money += hour_pay
    print(working_hour, '시간이 지났습니다.')
    
    if money >= gpu_price:
    	print('GPU를 살 돈이 모였습니다.')

# 1 시간이 지났습니다.
# 2 시간이 지났습니다.
# 3 시간이 지났습니다.
# ....
# 93 시간이 지났습니다.
# 94 시간이 지났습니다.
# 95 시간이 지났습니다.
# GPU를 살 돈이 모였습니다.

while문은 조건이 충족될 때까지 반복을 하는 것이라서 아래와 같이 강제로 종료시키지 않는 이상 무한히 반복하는 루프를 만드는 것도 가능하다. (이경우 Ctrl+C키를 누르면 끝낼수 있다.)

money = 0
gpu_price = 9.5*1e+5
while True:
	money+=10000
    print('현재 돈은', money,'입니다.')

특정조건이 충족됐을 때 while문을 종료시키고 싶으면 break를 사용하면 된다.

money = 0
gpu_price = 9.5*1e+5
while True:
	money+=10000
    print('현재 돈은', money,'입니다.')
    if money == gpu_price:
    	print('돈이 모였습니다.')
        break

이외에 어떤 조건에서는 while문이 작동이 안되게 하고 싶을 때가 있다. 이때는 continue를 쓰면된다.

아래와 같이 작성하면 7, 14, 21, 28일이 되면 money가 업데이트가 안된다.

money = 0
gpu_price = 9.5*1e+5
day = 1
while True:
    day+=1
    print('현재 돈은', money,'입니다.')
    if day % 7 == 0:
    	print('일요일입니다. 돈을 안법니다.')
        continue
    
    money+=10000
    if money == gpu_price:
    	print('돈이 모였습니다.')
        break
        
# 현재 돈은 0 입니다.
# 현재 돈은 10000 입니다.
# 현재 돈은 20000 입니다.
# 현재 돈은 30000 입니다.
# 현재 돈은 40000 입니다.
# 현재 돈은 50000 입니다.
# 일요일입니다. 돈을 안법니다.
# 현재 돈은 50000 입니다.
# 현재 돈은 60000 입니다.
# 현재 돈은 70000 입니다.
# 현재 돈은 80000 입니다.
# 현재 돈은 90000 입니다.
# 현재 돈은 100000 입니다.
# 현재 돈은 110000 입니다.
# 일요일입니다. 돈을 안법니다.
728x90
반응형

'파이썬3 > 기초' 카테고리의 다른 글

f-string 사용법  (0) 2022.06.16
비교 연산자 (Comparison Operators)  (0) 2022.01.08
파이썬 if/else문  (0) 2022.01.08
변수 (variable)와 카피 (copy)  (0) 2021.12.30
불 (bool) 자료형  (0) 2021.12.30