-
반응형
이번 포스팅은 파이썬의 제어문 중 반복문에 해당하는 while 문에 대한 내용입니다.
어떤 명령들을 반복 수행할 경우 for 와 while을 사용하여 반복 시킵니다.
사용법이 약간 다르니 필요에 따라 for 와 while 을 적절히 사용하면 됩니다.
for 문을 아직 안 보셨다면 먼저 보고 오세요.
[IT 이야기 공간/프로그램 언어 및 Database] - 파이썬 제어문 - 반목문 for문
파이썬 while문 기본 구문은 아래와 같습니다.
while은 for 보다는 간단한 구조로 조건문이 참일 경우 계속 반복합니다.
조건문이 거짓이거나 break 로 loop를 빠져 나갈 때 끝납니다.
while은 for 같이 범위가 있는 것이 아니기 때문에 무한루프에 빠지지 않도록 조심해야 합니다.
만약 코딩을 잘못 했거나 일부러 무한루프를 도는 프로그램이라면 Ctrl + C 로 프로그램을 중지 할 수 있습니다.
그러므로 조건문이 거짓이 되어 while 반복을 중지 할 수 있도록 프로그램 해야 합니다.
while 도 for 와 같이 else를 사용 할 수 있습니다.
i = 0
while i < 5:
print( i )
i = i + 1 # i를 1 씩 증가 시킵니다.
# i가 5가 될 때까지 수행하고 조건문에서 5일 경우 거짓이 되어 while 문을 빠져 나옵니다.
print( ‘증가: ’, i )
else:
print( "while end" ) # 마지막에 실행합니다.
0
증가: 1
1
증가: 2
2
증가: 3
3
증가: 4
4
증가: 5
while end
>>>while에 대한 제어로 for 문과 마찬가지로 continue 와 break 가 있습니다.
동일한 기능을 합니다.
for에서 예제로 보였던 홀수를 출력하는 것을 while 로 바꾸어 보겠습니다.
[for문 예제]
for x in range( 1, 20):
print( x )
if x%2 == 0 : continue ## continue를 만나면 아래를 수행하지 않고 다시 for로 올라가 다음 요소값을 수행합니다.
print( '홀수 :' , x )
if x == 13: break ## break 를 만나면 for 구문을 완전히 빠져나옵니다.[while 문으로 변경 예제]
x = 1
while x < 20:
print( x )
if x%2 == 0 :
x = x + 1 ## 1. 주의
continue ## continue를 만나면 아래를 수행하지 않고 다시 for로 올라가 다음 요소값을 수행합니다.
print( '홀수 :' , x )
if x == 13: break ## break 를 만나면 for 구문을 완전히 빠져나옵니다.
x = x + 1
1
홀수 : 1
2
3
홀수 : 3
4
5
홀수 : 5
6
7
홀수 : 7
8
9
홀수 : 9
10
11
홀수 : 11
12
13
홀수 : 13
>>>위의 “1. 주의” 구문은 x를 증가 시켜주는 구문이 없으면 홀수 1 까지만 출력하고 2로 증가한 다음 계속 2로 나눈 나머지가 0 이므로 continue 가 되므로 무한루프에 빠지니 주의하세요.
한번 “1. 주의” 구문을 주석 처리하고 실행해 보세요.
무한루프는 Ctrl + C 하면 중지 됩니다.
[무한루프 만들기]
프로그램 구조상 24시간 실행되어야 하는 프로그램이 있다면 일부러 무한루프를 만들어야 할 수도 있습니다.
아래 구조로 만들면 간단합니다.
while True:
< 실행문>
당연히 while도 이중 중첩으로 사용 할 수 있고, while 안에 for, for 안에 while 을 사용할 수 있습니다.
for문에서 예제로 들었던 구구단을 while 로 변경해 보았습니다.
좀더 신경 쓸게 있긴 합니다.
i = 1 ## 수행 횟수를 위한 변수 입니다.
x = 2 ## x 는 2단 부터 시작이므로 2로 변수 선언합니다.
while x < 10: ## 1번 while
y = 1 ## 2단, 3단… 할 때마다 다시 1부터 시작해야 하므로 y를 1로 초기화 합니다.
while y < 10 : ## 2번 while
print( i, x, '*', y, '=', x*y )
y = y +1
i = i +1 ## 수행 횟수를 알기 위해 1을 더해 줍니다.
x = x+1 ## 1번 while 에 속해야 하므로 들여쓰기 레벨을 잘 맞춥니다.
1 2 * 1 = 2
2 2 * 2 = 4
3 2 * 3 = 6
4 2 * 4 = 8
5 2 * 5 = 10
6 2 * 6 = 12
7 2 * 7 = 14
8 2 * 8 = 16
9 2 * 9 = 18
10 3 * 1 = 3
11 3 * 2 = 6
12 3 * 3 = 9
… 중간 생략
59 8 * 5 = 40
60 8 * 6 = 48
61 8 * 7 = 56
62 8 * 8 = 64
63 8 * 9 = 72
64 9 * 1 = 9
65 9 * 2 = 18
66 9 * 3 = 27
67 9 * 4 = 36
68 9 * 5 = 45
69 9 * 6 = 54
70 9 * 7 = 63
71 9 * 8 = 72
72 9 * 9 = 81상황에 따라 for 나 while 중 편한 것이 있습니다.
맞춰서 사용하면 됩니다.
while 문에 대해서도 알아 보았습니다.
반응형'IT 이야기 공간 > 프로그램 언어' 카테고리의 다른 글
파이썬 함수 매개변수 만들기 – 가변 및 디폴트값 설정 (0) 2020.06.28 파이썬 사용자 정의 함수 만들기 (0) 2020.06.27 파이썬 제어문 - 반목문 for문 (1) 2020.06.25 파이썬 제어문 – 조건문 if문 (0) 2020.06.24 파이썬 조건문 – 비교 논리 연산자 (2) 2020.06.23