while 반복문
Coddy Python 여정의 기초 섹션에 포함된 레슨. 77개 중 36번째.
while 루프는 for 루프와 다릅니다. for 루프를 사용하면 특정 range를 반복할 수 있는 반면, while 루프를 사용하면 특정 condition이 충족되는 동안 계속 반복할 수 있습니다.
while loop을 사용하려면 다음과 같이 작성하세요:
while condition:
codecondition이 True인 경우에만 코드가 실행됩니다.
condition은 일반적으로 비교 연산자를 사용하여 구성됩니다. 예를 들어 <=(작거나 같음), >=(크거나 같음), <(작음), >(큼), ==(같음) 등이 있습니다. 해당 비교의 결과가 True인 동안 loop는 계속 실행되며, False가 되는 즉시 중지됩니다.
loop 본문 안에서는 보통 검사 중인 variable을 update해야 합니다. 이는 +=(더한 후 대입), -=(뺀 후 대입), *=(곱한 후 대입), /=(나눈 후 대입)과 같은 복합 대입 연산자를 사용하여 수행합니다. 예를 들어 x *= 2는 x = x * 2의 축약형입니다. variable을 update하지 않으면 condition이 절대 바뀌지 않아 loop가 영원히 실행됩니다.
for 반복문으로는 해결할 수 없지만 while로는 해결할 수 있는 사용 사례가 많습니다.
예를 들어 다음 문제를 생각해 보세요.
주어진 숫자보다 큰 가장 작은 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는 비교 연산자를 사용하는 condition이며, power_of_two *= 2는 복합 할당 연산자를 사용하여 각 반복마다 variable을 update합니다. power_of_two가 number를 초과하면 condition은 False가 되고 loop가 중지됩니다.
챌린지
초급입력값 하나인 float 숫자를 받는 프로그램을 작성하세요.
숫자가 3.5보다 크거나 같은 동안 while 루프를 사용하여 입력값을 2로 나누세요.
3.5보다 작은 첫 번째 숫자를 출력하세요.
직접 해보기
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러