Python - While 문

조건이 참 True인 경우 계속 실행하는 반복문

while 반복문은 for 반복문 처럼 블럭안에 코드를 반복시키는 것이다.

사용법은 if 와 더 비슷하다.

selected = None    # "selected에 아무 값도 들어 있지 않다."는 의미
while selected not in ['가위', '바위', '보']:
    selected = input('가위, 바위, 보 중에 선택하세요>')
print('선택된 값은: ',selected)

python while_func.py

가위, 바위,  중에 선택하세요> 

가위, 바위,  중에 선택하세요> 

가위, 바위,  중에 선택하세요> 가위

선택된 값은:  가위

while문selected변수의 값을 검사해서 [‘가위’, ‘바위’, ‘보’] 이 중에 값이 들어 있는지 확인한다.

그러나 not in (그렇지 않으면) , input입력을 받는다.

그러면 그 입력받은 값에 대해서 while문으로 다시 검사한다.

는 맞지 않은 값이므로 다시 input입력을 받고 while문을 검사한다.

‘가위’를 입력하면 [‘가위’, ‘바위’, 보] 중에 값이 있으므로 while 문의 not in 은 틀린말이 된다.

그래서 while’문은 종료가 되고, 선택된 값은 가위라고 print 된다.

while문 대신에 if를 입력하면 어떤 값을 넣더라도 한번 실행되고 끝이난다.

selected = None
if selected not in ['가위', '바위', '보']:
    selected = input('가위, 바위, 보 중에 선택하세요>')
print('선택된 값은: ',selected)

python while_func.py

가위, 바위,  중에 선택하세요>

선택된 값은:  
  • while문은 조건문을 확인해보고 False (조건이 맞지 않으면) 실행하지 않는다.

  • if문 **과 **while문의 차이는 if’문은 조건문을 한번만 실행하고, while문은 조건이 맞는 한 조건문을 계속 실행한다.
  • for문while문의 공통점은 block의 코드를 여러번 반복한다는 점
patterns = ['가위', '보', '보']
for pattern in patterns:
    print(pattern)

python while_func.py

가위


for문 반복

patterns = ['가위', '보', '보']

for i in range(len(patterns)):
    print(patterns[i])

python while_func.py

가위


while문 반복

patterns = ['가위', '보', '보']
length = len(patterns)
i = 0
while i < length:     
    print(patterns[i]) 
    i = i + 1          

ilength(length가 3) 3보다 작는 한, 계속 아래 블럭을 실행하게 된다.

patterns list의 i번째 값을 출력하고, i값을 1증가 시킨다. 그리고 증가를 계속 반복하게 된다.

그러다 length보다 i가 크거나 같은 순간이 오게 되면 while문은 더이상 실행되지 않는다.

python while_func.py

가위


  • if문은 조건이 맞으면 한번만 실행 , while 반목문은 조건이 맞다면 계속 반복
  • for 반복문으로 작성한 코드는 while 반복문으로 작성 할 수 있다.
  • for와 while은 상황에 맞는 반복문을 사용할 것

:: 강의 링크 :: while문 쓰기

:: 참고 :: for문과 while문의 차이점