본문 바로가기
IT/파이썬 기초 (Python)

#016 파이썬 기초 - 흐름 제어문 while

by DoitSQL 2023. 2. 26.
728x90

Python기초강의강좌, 파이썬기초강의강좌, Python while

파이썬 기초 - 흐름 제어문 while   

WHILE 문

지난 시간에 이어 이번 시간에는 흐름 제어 while문에 대해서 알아보겠습니다.


while 문   

while 문은 특정 조건이 참일 경우 계속해서 블록의 명령문들을 반복하여 실행할 수 있도록 합니다. 
while 문은 [반복문]의 한 예입니다. 
또한 while 문에는 else 절이 따라올 수 있습니다.

 

예제 1 : 숫자 맞추기 (파이참에서 'while1.py'로 저장하세요)   

# Filename : while1.py
# 숫자 맞추기
number = 23
running = True

while running:
    guess = int(input('Enter an integer : '))

    if guess == number:
        print('Congratulations, you guessed it.')
        # this causes the while loop to stop
        running = False
    elif guess < number:
        print('No, it is a little higher than that.')
    else:
        print('No, it is a little lower than that.')
else:
    print('The while loop is over.')
    # Do anything else you want to do here

print('Done')

실행결과

C:\Anaconda\envs\study_39\python.exe E:\python_study\while1.py 
Enter an integer : 50
No, it is a little lower than that.
Enter an integer : 22
No, it is a little higher than that.
Enter an integer : 23
Congratulations, you guessed it.
The while loop is over.
Done

동작 원리 : 숫자 맞추기 

이 프로그램 또한 지남 시간에 했던 숫자 맞추기 게임입니다만, 
더 나은 점은 사용자가 답을 맞힐 때까지 계속 숫자를 입력할 수 있다는 것입니다. 

즉, 이전 섹션에서 작성한 프로그램처럼 다른 숫자를 입력해 보기 위해 
프로그램을 또 실행시킬 필요가 없습니다. 

 

여기서도 여러분들은 숫자를 입력할 때 알고리즘을 사용해야 합니다

1 ~ 100 사이의 수 이니깐 50부터 반씩 쪼개는 알고리즘을 사용해 보세요.

저는 50, 22, 23으로 맞추었지만 정상적인 알고리즘이라면

50, 25, 13, 19, 22, 23 이런 식으로 좁혀 나갈 수 있겠죠?

그걸 응용해서 프로그램하면 자동으로 맞추는 프로그램도 할 수 있겠죠?

이 예제는 [while문]의 사용법을 잘 보여줍니다.

먼저 while 루프가 실행되기 전 변수 'running'이 'True'로 설정되어 있으므로, 
while문에 딸려 있는 [while 블록]이 실행되며 'input'과 'if'문이 실행됩니다. 
이 블록의 실행이 끝나면, 'while'문은 변수 'running'의 값을 다시 한번 확인합니다. 

이 값이 참인 경우 [while 블록]을 다시 한번 실행하며, 
거짓인 경우 else 블록을 실행한 뒤 루프를 빠져나와 다음 명령문이 실행됩니다.

[else 블록]은 'while'루프 조건이 'False'인 경우 실행됩니다. 
물론 루프 조건을 처음으로 확인했을 경우에도 이 블록이 실행될 수 있습니다. 

'while' 루프에 'else' 절이 딸려있는 경우, 
'break' 명령으로 루프를 강제로 빠져나오지 않는 이상 이 블록은 항상 실행되게 됩니다.

여기서 True와 False라는 값들은 불리언 형식이라고 불리며, 각각은 숫자 1과 0으로 간주됩니다.

 

파이썬의 while 문이 다른 프로그램 언어와 다른 점은 else 절을 사용할 수 있는 것입니다.


예제 2 : 1부터 10까지 홀수의 합, 짝수의 합 구하기 ('while2.py'로 저장하세요)   

# Filename : while2.py
# 1부터 10까지 홀수의 합, 짝수의 합 구하기
i = 0
result1 = 0
result2 = 0

while i < 10:
    i += 1              # i =  i + 1
    if i % 2 == 1:
        result1 += i    # result1 =  result1 + i
    else:
        result2 += i    # result2 =  result2 + i

print ('홀수의 합 :', result1)
print ('짝수의 합 :', result2)

 실행결과

C:\Anaconda\envs\study_39\python.exe E:\python_study\while2.py 
홀수의 합 : 25
짝수의 합 : 30

 동작 원리 : 1부터 10까지 홀수의 합, 짝수의 합 구하기

i가 0부터 1씩 증가해서 9일 때까지는 while의 조건을 만족합니다.

10이 되면 while 문을 빠져나와 다음 문장을 수행합니다.

 

나머지가 1이면, 홀수에 더하고
아니면(0이면), 짝수에 더합니다.

 

반복문을 빠져나오면 결과를 출력합니다.


C/C++ 프로그래머를 위한 주석

while 루프에 else 절이 사용될 수 있음을 기억하세요.


모든 프로그램이 친해지는 게 중요합니다.

쉬운 것이라도 연습을 해야겠죠.

전에 알려드린 https://wikidocs.net/book/922

 

초보자를 위한 파이썬 300제

파이썬 기초 문법을 배웠다고 해서 누구나 프로그래밍에 익숙해지는 것은 아닙니다. 프로그래밍에 익숙해지기까지 많은 문제를 풀어보고 익숙해지는 것이 필요합니다. 파이썬 300제는 파…

wikidocs.net

여기는 자주 가시는지요? 가셔서 문제를 풀어 보시기 바랍니다.

시시한 문제일 수 있지만 풀면서 생각을 정리해 보시기 바랍니다.

 

감사합니다.


Do it! SQL을 찾아 주셔서 감사합니다. 공감 ♥ , 댓글이 큰 힘이 됩니다.

 

728x90

댓글