while 반복문
Coddy Python 여정의 Fundamentals 섹션에 포함된 레슨 — 77개 중 36번째.
while 루프는 for 루프와 다릅니다. for 루프는 특정 range를 반복할 수 있게 해주는 반면, while 루프는 특정 조건이 충족되는 동안 계속해서 반복할 수 있게 해줍니다.
while 루프를 사용하려면 다음과 같이 작성하세요:
while condition:
code조건이 True인 경우에만 코드가 실행됩니다.
조건은 일반적으로 <= (~보다 작거나 같음), >= (~보다 크거나 같음), < (~보다 작음), > (~보다 큼), 또는 == (~와 같음)과 같은 비교 연산자를 사용하여 구성됩니다. 해당 비교 결과가 True로 평가되는 동안 루프는 계속 실행되며, False가 되는 즉시 중단됩니다.
루프 본문 내부에서는 보통 확인 중인 변수를 업데이트해야 합니다. 이는 +=(더하기 및 할당), -=(빼기 및 할당), *=(곱하기 및 할당) 또는 /=(나누기 및 할당)과 같은 복합 대입 연산자를 사용하여 수행됩니다. 예를 들어, x *= 2는 x = x * 2의 줄임표현입니다. 변수를 업데이트하지 않으면 조건이 절대 변하지 않아 루프가 영원히 실행됩니다.
while 문이 문제를 해결할 수 있지만, for 루프는 해결할 수 없는 사용 사례가 많이 있습니다.
예를 들어 다음 문제를 생각해 보세요:
주어진 수보다 큰 2의 거듭제곱 중 가장 작은 수를 찾으세요.
이를 해결하기 위해 우리는 주어진 숫자보다 커질 때까지 현재 2의 거듭제곱에 2를 반복해서 곱하는 while 루프를 사용할 것입니다:
number = 27
power_of_two = 1
while power_of_two <= number:
power_of_two *= 2
print(power_of_two)여기서 power_of_two <= number는 비교 연산자를 사용한 조건이며, power_of_two *= 2는 복합 대입 연산자를 사용하여 매 반복마다 변수를 업데이트합니다. power_of_two가 number를 초과하면 조건은 False가 되고 루프가 중단됩니다.
챌린지
초급하나의 float 숫자 입력을 받는 프로그램을 작성하세요.
숫자가 3.5보다 크거나 같을 동안 while 루프를 사용하여 입력을 2로 나눕니다.
3.5보다 작은 첫 번째 숫자를 출력하세요.
치트 시트
while 루프는 조건이 True인 동안 실행됩니다:
while condition:
code조건을 만들기 위해 비교 연산자를 사용하세요: ==, <, >, <=, >=.
매 반복마다 변수를 업데이트하기 위해 복합 대입 연산자를 사용하세요: +=, -=, *=, /=.
number = 27
power_of_two = 1
while power_of_two <= number:
power_of_two *= 2 # 무한 루프를 방지하기 위해 변수 업데이트
print(power_of_two) # 32직접 해보기
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.