남들이 안해본것을 해서 궁극적인 지식의 완성을 목표로 하는 블로그입니다.
제품리뷰 , IT, 프로그래밍 관련글을 포스팅합니다.
또한 자기만 읽으려고 만든 정리 노트식의 글들을 싫어합니다. 비전공자나 처음 본 사람도 최대한 이해할 수 있도록 프로그래밍 관련 글들을 쉽게 적으려고 노력하고 있습니다. 보안 계통과 컴퓨터의 Low-Level 한 분야에 관심이 많습니다.
영어에서 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)
>>>
^
^^
^^^
^^^^
^^^^^
^^^^^^
^^^^^^^
^^^^^^^^
^^^^^^^^^
^^^^^^^^^^
[파이썬 강좌] #9 반복문 사용하기 While편
저번 시간에 반복문 중 For문이라는 것에 대해 배웠습니다.
이번엔 반복문 중 2번째인 While에 대해 알아보겠습니다.
영어에서 While은 ~~하는 동안이라는 뜻으로 쓰입니다.
프로그래밍에서도 비슷한 맥락으로 이해하실 수 있습니다.
파이썬의 For문이 범위를 지정해주고 그 범위안에서 반복이 돌아갔다면, While문의 경우에는 어떤 조건식이 참일동안만 반복하게 됩니다.
이게 가장 핵심적인 내용이고 While문을 사용할때 햇갈리지 않으려면 진한 글씨의 내용을 숙지해주시는게 좋습니다.
아래에서 예제로 While문의 사용법을 알아보겠습니다.
우선 while의 사용방법을 알아봅시다. 지금까지 for문, if문의 구분방법과 동일하게 :(콜론) 으로 구분을 하고
반복을 돌릴 부분의 실행코드 들을 Tab으로 들여쓰기 해서 구분합니다.
While문은 조건식이 참일동안만 아래의 실행코드를 실행합니다. (중요)
위 소스는 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문은 종료됩니다.
이거 저번에 본적이 있는거같죠? #4 리스트편 에서 리스트 관리 프로그램에서 사용한건데요
dialog 라는 변수에 input으로 입력을 받고 while 반복문에 들어가서
dialog가 exit이 아닐때까지 반복을 하고 dialog == 'exit'이 되면 print('escape')부분으로 while문에서 나가게 됩니다.
while 조건절에 True를 입력하게되면 무한반복을 하게 됩니다.
while 강제 탈출은 역시 for문처럼 while문안에서 break를 쓰면 나가게 됩니다.
추가적으로 while문은 기본적으로 조건식이 참인 동안만 반복을 하므로 (참일때만 실행을 하므로) 조건식이 False (거짓) 이면 실행자체가 안됩니다.
다음과 같이 For문이 아닌 While문으로 별타워를 찍어볼 수 있습니다.
'프로그래밍 강좌 > Python' 카테고리의 다른 글
COMMENT WRITE