파이썬 - While 루프: 초보자 가이드
안녕하세요, 파이썬 프로그래머를 꿈꾸는 여러분! 오늘은 while 루프의 놀라운 세계에 빠지러 가요. 여러분의 친절한 이웃 컴퓨터 선생님으로서, 저는 이 여정을 단계별로 안내해 드릴게요. 그럼, 좋아하는 음료를 준비하고 편하게 앉아, 함께 이 흥미로운 모험에 떠나요!
What is a While Loop?
무엇인가요?
파이썬의 While 루프란?
자세한 내용에 들어가기 전에, 기본 사항부터 시작해요. 주사위를 굴릴 때 6이 나올 때까지 계속 굴릴 게임을 하고 있다고 상상해봅시다. 몇 번 굴려야 하는지 알 수 없겠죠? 이때 while 루프가 유용합니다!
파이썬의 while 루프는 특정 조건이 참인 동안 코드 블록을 반복적으로 실행시킬 수 있습니다. 파이썬에게 "이거 계속 하다가 내가 말하면 멈춰!"라고 말하는 것과 같아요!
기본 문법
가장 간단한 형태의 while 루프는 이렇습니다:
while condition:
# 실행할 코드
매우 간단하지 않나요? 이렇게 쪼개봅시다:
-
while
키워드는 파이썬에 while 루프를 시작한다는 것을 알려줍니다. -
condition
은 루프가 계속 진행해야 하거나 멈춰야 하는지 결정하는 불리언 표현식입니다. - 들여쓰기 된 코드 블록은 조건이 참인 동안 반복적으로 실행됩니다.
간단한 예제
이제 주사위 게임으로 실습해 봅시다:
import random
roll = 0
while roll != 6:
roll = random.randint(1, 6)
print(f"You rolled a {roll}")
print("Congratulations! You rolled a 6!")
이 예제에서:
- 우리는 무작위 숫자를 생성하기 위해
random
모듈을 임포트합니다. -
roll
을 0으로 초기화합니다. -
roll
이 6과 같지 않은 동안 while 루프가 계속됩니다. - 루프 내부에서 우리는 1부터 6 사이의 무작위 숫자를 생성하고 인쇄합니다.
- 6을 굴리면 루프가 끝나고, 축하 메시지를 인쇄합니다.
이 코드를 몇 번 실행해 보면, 각 번에 다른 횟수로 굴릴 수 있음을 알 수 있습니다. 바로 while 루프의 아름다움입니다 - 몇 번 반복해야 하는지 알지 못하는 상황에 완벽합니다.
파이썬 무한 While 루프
이제, 약간 위험하지만 흥미로운 무한 루프에 대해 이야기해 봅시다. 마치 가장 좋아하는 칩을开封한 것처럼, 시작하면 멈출 수 없게 됩니다!
무한 루프는 조건이 항상 참이 되기 때문에 끝나지 않는 while 루프입니다. 이것이災難의 레시피로 들릴 수도 있지만, 프로그래밍에서 무한 루프가 유효한 사용 사례가 있습니다.
이렇게 간단한 예제가 있습니다:
while True:
print("This is an infinite loop!")
이 루프는 영원히 "This is an infinite loop!"를 인쇄할 것입니다... 또는 최소한 수동으로 프로그램을 중지할 때까지 (보통 Ctrl+C를 누릅니다).
더 실용적인 예제
사용자가 나가기를 결정할 때까지 계속 실행되는 간단한 계산기를 만들어 봅시다:
while True:
print("\nSimple Calculator")
print("1. Add")
print("2. Subtract")
print("3. Quit")
choice = input("Enter your choice (1-3): ")
if choice == '3':
print("Thanks for using the calculator. Goodbye!")
break
elif choice in ('1', '2'):
num1 = float(input("Enter first number: "))
num2 = float(input("Enter second number: "))
if choice == '1':
print(f"Result: {num1 + num2}")
else:
print(f"Result: {num1 - num2}")
else:
print("Invalid input. Please try again.")
이 예제에서:
- 우리는 무한 루프를 사용하여 계산기를 계속 실행합니다.
- 사용자는 더하기, 빼기, 나가기를 선택할 수 있습니다.
- 사용자가 나가기를 선택하면 (옵션 3),
break
문을 사용하여 루프를 종료합니다. - 옵션 1과 2의 경우, 계산을 수행하고 결과를 보여줍니다.
- 사용자가 잘못된 옵션을 입력하면, 오류 메시지를 표시하고 루프가 계속됩니다.
이것은 인터랙티브 프로그램을 만들 때 무한 루프가 얼마나 유용할 수 있는지의 좋은 예입니다!
파이썬 while-else 루프
이제 파이썬의 while 루프의 독특한 기능인 else 절에 대해 탐구해 봅시다 - 루프가 정상적으로 완료될 때 백업 계획과 같아요.
문법은 이렇습니다:
while condition:
# 조건이 참인 동안 실행할 코드
else:
# 조건이 거짓이 되었을 때 실행할 코드
else 블록은 while 루프 조건이 거짓이 되었을 때 실행됩니다. 그러나 루프가 break
문으로 종료되면 else 블록은 건너뛰게 됩니다.
예제: 숫자 검색
이제 while-else 루프를 사용하여 리스트에서 숫자를 검색해 봅시다:
numbers = [1, 3, 5, 7, 9, 11, 13, 15]
target = 10
index = 0
while index < len(numbers):
if numbers[index] == target:
print(f"Found {target} at index {index}")
break
index += 1
else:
print(f"{target} not found in the list")
이 예제에서:
- 우리는 숫자 리스트를 루프합니다.
- 타겟을 찾으면 그 위치를 인쇄하고 루프를 종료합니다.
- 타겟을 못 찾고 루프가 정상적으로 완료되면 else 블록이 실행됩니다.
이는 특히 루프가 찾고자 하는 것을 못 찾고 완료될 때 특정 작업을 수행하고자 할 때 유용합니다.
단일 문장 스위트
때로는 while 루프가 너무 간단하여 단일 줄의 코드만 필요할 수 있습니다. 이 경우, 파이썬은 한 줄에 작성할 수 있게 합니다. 마치 프로그래밍의 미니멀리즘 식사 - 빠르고 편리합니다!
이렇게 문법이 됩니다:
while condition: statement
이제 예제를 보죠:
count = 5
while count > 0: print(count); count -= 1
이 간결한 루프는 5에서 1까지의 숫자를 인쇄합니다.
그러나 경고하자면, 단일 줄 루프는 편리하지만, 과도하게 사용하면 코드가 읽기 어려워질 수 있습니다. 가독성을 우선으로 해야 하며, 특히 배우는 동안은 그렇습니다.
결론
축하합니다! 여러분은 파이썬의 while 루프에 대한 흥미로운 투어를 마쳤습니다. 기본 루프부터 무한 루프, while-else 구조, 심지어 단일 줄 루프까지, 여러분은 이 essential 프로그래밍 개념에 대한 견고한 기반을 마련했습니다.
기억하세요, 연습이 제일 중요합니다. 여러분만의 while 루프를 만들고, 다양한 조건을 실험해 보세요. 그리고 무엇인가요? 여러분의 다음 프로젝트가 프로그래밍 세계에서 큰 성공을 거두는 것이 아닐 수 없습니다!
좋은 코딩을, 여러분의 루프가 항상 원하는 시점에 종료되길 바랍니다!
| 메서드 | 설명 | 예제 |
|--------|-------------|---------|
| 기본 while 루프 | 특정 조건이 참인 동안 코드 블록을 반복적으로 실행 | `while count > 0: print(count); count -= 1` |
| 무한 while 루프 | 수동으로 중지하거나 break 조건을 만족할 때까지 무한히 계속 | `while True: print("This is infinite!")` |
| while-else 루프 | while 조건이 거짓이 되었을 때 else 블록을 실행 | `while condition: ... else: ...` |
| 단일 문장 while 루프 | 특정 조건이 참인 동안 단일 문장을 실행 | `while count > 0: print(count); count -= 1` |
| break 문 | 루프를 조기에 종료 | `while True: if condition: break` |
| continue 문 | 현재 반복에서 나머지 코드를 건너뛰고 다음 반복으로 이동 | `while True: if condition: continue` |
Credits: Image by storyset