Python

파이썬 흐름제어 02

eloyb 2024. 11. 26. 05:30

while 반복문(while loop)

 

이전에 if 조건문에 이어서 이번에는 while 반복문에 대해서 설명드리도록 하겠습니다. while 반복문은 반복적으로 코드 블록을 실행하는 사용됩니다. 예를 들어 사용자 로그인 창에서 패스워드를 입력하는 곳에서 패스워드가 틀릴 경우 계속 해서 맞는 패스워드를 요구하는 데 사용할 수 있습니다.

while 조건문: 실행되는 문1 실행되는 2

while 반복문의 사용법은 위와 같습니다. 그러면 실제 사용 예를 들어보도록 하겠습니다.

start = 0 # if 사용 if start < 5: print('안녕하세요.') start = start + 1 start = 0 # while 사용 while start < 5: print('안녕하세요.') start = start + 1

if 문과 다른 점을 비교하기 위해서 if 사용 예와 같이 코드를 나타내 보았습니다. if 문의 경우는 start < 5 라는 조건을 검 색해서 start 0 이므로 조건문이 실행이 되지만 한번만 실행이 되고 문이 종료됩니다. start = start + 1 문은 아무런 의 미가 없습니다.

반면에 while 반복문은 조건을 검색해서 조건이 만족되면 문을 실행하는 것은 if 문과 똑같지만, 조건이 맞으면 다시 처음 의 while 조건문으로 돌아가서 다시 조건을 검사하게 됩니다. 그래서 다시 조건이 충족되면 아래의 문을 실행하게 됩니 .

여기에서 start = start + 1 아주 중요합니다. 문이 있어야만 무한 루프에 빠지지 않고 while 문을 끝낼 있습니다. 처음 시작할때는 start 0으로 시작되서 start = start + 1을 만나서 1로 바뀌고 다시 처음의 while 문으로 돌아가 start 1 이 되고 아래의 문을 실행하고 계속해서 5가 될때까지 반복을 하게 됩니다. 그래서 start 5 가 되면 5 5 보다 작 지 않으므로 여기에서 더 이상 while 반복문을 실행하지 않고 문을 종료하게 됩니다.

name = '' while name != '정발산': print('이름을 입력하세요') name = input() print('환영합니다.')

이번 예는 while 반복문을 이용해서 사용자 이름을 체크하는 과정입니다. 이름은 처음에 name = '' 통해서 빈문자열로 초기화 합니다. while 반복문에 이름이 정발산이 아닌 지의 조건을 만든 다음 input() 함수를 통해서 사용자 이름을 입력 받습니다. 만약 사용자가 자신의 이름을 정발산으로 입력하지 않았다면 처음의 while 조건문으로 돌아가서 다시 이름을 입력하도록 요구해서 정발산 이라는 이름을 입력할 때까지 while 반복문을 진행하게 됩니다.

 

break 사용

while 반복문의 사용중에 강제로 while 반복문을 빠져 나와야 경우가 있습니다. 예를 들어 사용자가 패스워드 입력을 5 이상 틀렸을 경우 강제로 프로그램을 종료하는 경우가 있을 있습니다. 이럴 경우에 사용할 있는 것이 break 입니다.

 

while True: print('이름을 입력하세요.') name = input() if name == '정발산': break print('환영합니다.')

while 문을 True 로 초기화 합니다. 이후에 name = input() 을 통해서 사용자 이름을 입력 받습니다. if 조건문을 통해서 '정발산'으로 입력을 했는 체크한 다음 맞게 입력을 했다면 break 통해서 이상 반복문을 진행하지 않고 문을 종료 하게 됩니다.

 

continue 사용

while 반복문에서 continue 문을 사용할 있습니다. break 문과 마찬가지고 continue 문은 while loop 문의 내부에서 사용됩니다. while 반복문이 continue를 만나게 되면 프로그램의 실행은 즉시 루프의 시작으로 돌아가서 루프의 조건을 다시 검사하게 됩니다. 예를 들어 사용자 이름과 패스워드를 검사하는 반복문이 있을 경우 사용자 이름이 올바르지 않다면 패스워드는 검사할 필요도 없이 다시 사용자 이름을 다시 입력하도록 요구할 수 있습니다. 이럴 경우에 continue 문을 사 용할 수 있습니다.

while True: print('이름을 입력하세요.') name = input() if name != '정발산': continue print('안녕하세요!!! 정발산 님. 패스워드를 입력하세요.') password = input() if password == '1234': break print('환영합니다.')

위의 코드는 name = input() 을 통해서 사용자 이름을 입력 받고, name != '정발산' 을 통해서 사용자 이름이 정발산이 아니라면 continue 문을 만나서 루프의 처음으로 돌아가서 다시 사용자 이름을 입력받게 됩니다. 그렇게 반복문을 수행하 다가 '정발산' 을 입력했을 경우 더이상 continue 문은 실행되지 않고 print('안녕하세요!!! 정발산님. 패스워드를 입력하 세요.') 이후의 문을 실행하게 됩니다.

 

무한 루프

while True: print('안녕하세요')

while 반복문을 사용하다 보면 잘못해서 무한 루프에 빠지는 경우가 생길 수 있습니다. 위와 같은 경우가 무한 루프에 빠 진 경우인데 while 반복문의 조건이 True 이고, 조건을 변경할 있는 방법이 없기 때문에 위의 문장은 무한 루프에 빠 지게 됩니다.

여기에서 무한 루프에서 빠져나오려면 CTRL + C 키를 누르거나 프로그램을 재시작 해야 합니다. for 반복문(for loop)

while 반복문은 조건이 참인 경우 루프를 계속 수행하지만 for 반복문은 특정 조건에서만 코드의 블록을 실행하고자 할때 사용됩니다.

for 반복문은 보통 range() 함수와 같이 수행되는 경우가 많습니다.

>>> i = range(5) >>> i range(0, 5) >>> i = range(1, 5) >>> i range(1, 5) >>>

range() 함수는 위와 같이 숫자 리스트를 자동적으로 생성해 줍니다. range(5) 0,1,2,3,4 의 숫자 리스트를 생성해주 고 range(1, 5) 처럼 범위를 지정해 주면 1,2,3,4 숫자를 생성해 줍니다. 마지막 숫자는 포함되지 않는 다는 점에 유의 해 주시기 바랍니다.

그러면 for 반복문의 사용법에 대해 알아보도록 하겠습니다.

 

for 변수 in 리스트: 실행되는 문1 실행되는 2

for 반복문의 사용법은 위와 같습니다. 그러면 실제 사용 예를 들어보도록 하겠습니다. list = ['a', 'b', 'c'] for i in list: print(i)

리스트 자료형에 a,b,c 담고 리스트를 반복해서 돌면서 행씩 a,b, c 출력해주는 구문입니다. 리스트 자료형에 대해선 이후에 설명드리도록 하고 for 문은 위와 같이 사용된다는 것만 이해해 주시기 바랍니다.

이번에는 for 문과 range 함수를 같이 사용하는 예를 들어보도록 하겠습니다. sum = 0 for i in range(1, 11): sum = sum + i print(sum)

위의 예는 1부터 10 모두 더해서 출력해주는 코드입니다. 편집기 모드에서 입력을 하고 F5 키를 눌러 실행을 해보면 55 가 출력되는 것을 알 수 있습니다.

for i in range(0, 10, 2): print(i)

range() 함수는 숫자 리스트를 세번째 인수를 가질 있습니다. range(시작숫자, 마지막숫자+1, 스탭) 같이 스탭을 통해서 숫자가 증가하는 단계를 지정할 수 있습니다.

그렇기 때문에 위의 문을 실행하면 0, 2, 4, 6, 8 이 출력되게 됩니다.

'Python' 카테고리의 다른 글

파이썬(Python) 스무고개 프로그램  (0) 2024.11.30
파이썬(Python) 쉬어가는 페이지  (1) 2024.11.27
파이썬 흐름제어 01  (1) 2024.11.25
파이썬(Python) 기본문법 03  (0) 2024.11.24
파이썬(Python) 기본문법 02  (1) 2024.11.22