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