Programming/Python

[코딩도장-파이썬] while 반복문

Supreme_YS 2020. 11. 15. 21:18

● while 반복문은 조건식으로만 동작하며 반복할 코드 안에 조건식에 영향을 주는 변화식이 들어간다. 다음은 while 반복문의 실행 과정이다. 먼저 초기식부터 시작하여 조건식을 판별한다. 이때 조건식이 참(True)이면 반복할 코드와 변화식을 함께 수행한다. 그리고 다시 조건식을 판별하여 참(True)이면 코드를 계속 반복하고, 거짓(False)이면 반복문을 끝낸 뒤 다음 코드를 실행한다.

 

i = 0 #초기식   
while i < 100: #while 조건식 
    print('Hello, World') # 반복할 코드 
    i += 1 #변화식

 

 

while 반복문의 동작과정 출처. 코딩도장

●먼저 while 반복문에 사용할 변수 i에 0을 할당한다. 그리고 while에는 조건식만 지정하면 된다. 특히 while 반복문은 반복할 코드 안에 변화식을 지정해야 한다. 만약 조건식만 지정하고 변화식을 생략하면 반복이 끝나지 않고 계속 실행(무한 루프)되므로 주의해야 한다.

while 반복문의 기본 형태 출처. 코딩도장

초기값 감소 시키기 초기값을 횟수대로 반복하기 초기값을 횟수대로 반복하기 2
i = 100
while i > 0 :
    print('Hello, Python', i)
    i -= 1
    
count = int(input('반복할 횟수를 입력하세요 : '))

i = 0

while i < count :
    print('Hello, Supreme', i)
    i += 1
count = int(input('반복할 횟수를 입력하세요 : '))


while count > 0 :
    print('Hello, Supreme', count)
    count -= 1

●지금까지 조건식에서 반복 횟수를 정한 뒤 변수 i를 증가시키거나 감소시켜서 while 반복문을 사용했다. 하지만 while 반복문은 반복 횟수가 정해지지 않았을 때 주로 사용한다. 이번에는 난수를 생성해서 숫자에 따라 반복을 끝내 보겠다. 난수(random number)란 특정 주기로 반복되지 않으며 규칙 없이 무작위로 나열되는 숫자를 뜻한다. 현실에서 쉽게 접할 수 있는 난수가 바로 주사위를 굴려서 나온 숫자다. 파이썬에서 난수를 생성하려면 random 모듈이 필요하다. 모듈은 다음과 같이 import 키워드를 사용하여 가져올 수 있다.

 

>>> random.random()
0.002383731799935007

>>> random.random()

0.3297914484498006

>>> random.random()

0.6923390064955324

 

while을 사용한 주사위 결과값 결과값2 결과값3
import random 

i = 0 

while i != 3 : 
    i = random.randint(1, 6) 
    print(i)
2
2
1
5
6
1
1
4
5
2
3
5
2
5
4
4
3
4
3

실행 결과를 보면 정수가 무작위로 생성되어 실행할 때마다 반복 횟수가 달라지는 것을 볼 수 있다. 이처럼 while 반복문은 반복 횟수가 정해져 있지 않을 때 유용하다.

 

● random.choice 함수를 사용하면 시퀀스 객체에서 요소를 무작위로 선택할 수 있다. 다음은 1, 2, 3, 4, 5, 6이 들어있는 리스트에서 무작위로 숫자를 선택한다. 물론 random.choice 함수는 시퀀스 객체를 받으므로 리스트뿐만 아니라 튜플, range, 문자열 등을 넣어도 된다.

결과값
dice = [1, 2, 3, 4, 5, 6]

print(random.choice(dice))
print(random.choice(dice))
1
3
* 숫자는 랜덤하게 바뀐다. 

● while로 무한루프 만들기

아래처럼 while 조건식: 형태에 True, 1, 0이 아닌 숫자나 문자들은 모두 참으로 판별해서 무한루프로 동작한다. Ctrl + c 버튼으로 빠져나올 수 있다. while 반복문은 조건식이 참(True)일 때 반복하고 거짓(False)일 때 반복을 끝낸다. 특히 while 반복문은 반복 횟수가 정해져 있지 않을 때 자주 사용한다. 반면 for 반복문은 반복 횟수가 정해져 있을 때 자주 사용한다. 그러므로 for와 while의 차이점을 정확히 익혀 두고 적절한 곳에 사용하는 것이 좋다.

while True: 
    print('Hello')
while 1:
    print('Hello2')
while 'python':
    print('Hello3')