저번 시간에 반복문 중 For문이라는 것에 대해 배웠습니다.
이번엔 반복문 중 2번째인 While에 대해 알아보겠습니다.
영어에서 While은 ~~하는 동안이라는 뜻으로 쓰입니다.
프로그래밍에서도 비슷한 맥락으로 이해하실 수 있습니다.
파이썬의 For문이 범위를 지정해주고 그 범위안에서 반복이 돌아갔다면, While문의 경우에는 어떤 조건식이 참일동안만 반복하게 됩니다.
이게 가장 핵심적인 내용이고 While문을 사용할때 햇갈리지 않으려면 진한 글씨의 내용을 숙지해주시는게 좋습니다.
아래에서 예제로 While문의 사용법을 알아보겠습니다.
while(조건식):
실행코드1
실행코드2
우선 while의 사용방법을 알아봅시다. 지금까지 for문, if문의 구분방법과 동일하게 :(콜론) 으로 구분을 하고
반복을 돌릴 부분의 실행코드 들을 Tab으로 들여쓰기 해서 구분합니다.
While문은 조건식이 참일동안만 아래의 실행코드를 실행합니다. (중요)
i = 0
while(i < 10):
i += 1
print(i, end='')
>>> 12345678910
위 소스는 i라는 정수를 선언 후 0으로 초기화 해주고 있습니다. while문이 돌아가는데 조건식은 i < 10 입니다.
즉, i < 10 이라는 조건이 참일동안만 반복을 하게 됩니다.
i의 값이 우선 처음 0으로 설정되었기 때문에
i = 0 에서 처음에 반복을 돌리면 0 < 10 이기 때문에 조건식이 참이 되서 while문 밑의 tab으로 구분해놓은 실행식들이 실행되게 됩니다.
(만약에 while문 조건식이 거짓이면 애초에 while문 아래의 실행식 자체가 실행되지 않고 무시하고 넘어가게 됩니다.)
그리고 i += 1 을 통해 i에 1을 누적시켜서 더해가고 있습니다.
설명을 안드렸던거 같은데 i+= 1은 i = i + 1 과 동일한 표현으로 자신에게 자신의 1을 더한 값을 대입하라는 뜻입니다.
그렇게 해서 첫번째 Loop (i = 0)에서 i += 1 에 의해 i는 1이 되게 되고 print() 로 1이 찍히고
다시 i < 10 조건식으로 돌아가서 조건식의 조건이 참인지 검사합니다.
지금 i = 1 이므로 1 < 10 에 의해 참. 다시 i+=1 이 실행 2가 출력..
이런 양상이 반복되게 됩니다.
그러다가 i = 9 인 상태에서 while 조건문을 만나면 9 < 10 : 참
i+=1 에 의해 i가 10이 되고 print() 에 의해 i값 10이 찍힙니다.
그리고 다시 조건식으로 돌아가서 조건을 확인하는데 10 < 10은 거짓이므로 while 문의 조건식은 참이 아닌 거짓이므로 while문의 아래 실행식들은 실행되지 않고 끝나서 while문은 종료됩니다.
dialog = input('If you want to exit, type exit : ')
while(dialog != 'exit'):
print("you can't")
dialog = input('If you want to exit, type exit : ')
print('escape')
입력1 : a
입력2 : b
입력3 : exit
>>>
If you want to exit, type exit : a
you can't
If you want to exit, type exit : b
you can't
If you want to exit, type exit : exit
escape
이거 저번에 본적이 있는거같죠? #4 리스트편 에서 리스트 관리 프로그램에서 사용한건데요
dialog 라는 변수에 input으로 입력을 받고 while 반복문에 들어가서
dialog가 exit이 아닐때까지 반복을 하고 dialog == 'exit'이 되면 print('escape')부분으로 while문에서 나가게 됩니다.
dialog = input('If you want to exit, type exit : ')
while(True):
if dialog == 'exit':
break
else:
dialog = input('If you want to exit, type exit : ')
print('escape')
입력1 : x
입력2 : exit
>>>
If you want to exit, type exit : x
If you want to exit, type exit : exit
escape
while 조건절에 True를 입력하게되면 무한반복을 하게 됩니다.
while 강제 탈출은 역시 for문처럼 while문안에서 break를 쓰면 나가게 됩니다.
while(False):
#no execute!!
추가적으로 while문은 기본적으로 조건식이 참인 동안만 반복을 하므로 (참일때만 실행을 하므로) 조건식이 False (거짓) 이면 실행자체가 안됩니다.
sr = '^'
i = 0
while(i < 10):
i += 1
print(sr * i)
>>>
^
^^
^^^
^^^^
^^^^^
^^^^^^
^^^^^^^
^^^^^^^^
^^^^^^^^^
^^^^^^^^^^
다음과 같이 For문이 아닌 While문으로 별타워를 찍어볼 수 있습니다.
'프로그래밍 강좌 > Python [리뉴얼중]' 카테고리의 다른 글
[파이썬 강좌] #11 람다식(Lambda) (0) | 2022.04.22 |
---|---|
[파이썬 강좌] #10 함수 사용하기 (0) | 2022.04.17 |
[파이썬 강좌] #8 반복문 사용하기 For편 (0) | 2022.04.16 |
[파이썬 강좌] #7 리스트의 활용 (0) | 2022.04.15 |
[파이썬 강좌] #6 부가 강의 - 주석 처리 및 기타 알아둘 점 (0) | 2022.04.15 |