Python - 문제 미리보기

문제 2107

hard
다음 입력 검증 코드에서 사용자가 "abc"를 입력했을 때의 동작 흐름으로 올바른 것은 무엇인가요?
```python
while True:
user_input = input("숫자를 입력하세요: ")
try:
number = float(user_input)
print(f"입력한 숫자: {number}")
break
except:
print("올바른 숫자를 입력해주세요.")
```
A. 오류 메시지 출력 → 프로그램 종료
B. "입력한 숫자: abc" 출력 → 프로그램 종료
C. 오류 메시지 출력 → 다시 입력 요청
D. 오류 발생으로 프로그램 중단

정답: C



⦁ 코드 동작 분석:
1. `while True`: - 무한 반복 시작
2. `input()` - 사용자에게 입력 요청
3. `float("abc")` - 문자열을 숫자로 변환 시도 → ValueError 발생
4. `except` 블록 실행 - "올바른 숫자를 입력해주세요." 출력
5. `break`가 실행되지 않았으므로 다시 반복문의 처음으로

⦁ 입력 검증의 핵심 원리:
⦁ `try-except` 구문으로 변환 오류를 안전하게 처리
⦁ `while True` 반복문으로 올바른 입력까지 계속 요청
⦁ `break` 문으로 올바른 입력 시에만 반복 종료

⦁ 실제 사용 시나리오:
⦁ 사용자가 실수로 문자를 입력해도 프로그램이 중단되지 않음
⦁ 친화적인 오류 메시지로 다시 입력하도록 안내
⦁ 견고한(robust) 프로그램 작성의 핵심 패턴

💡 학습 팁

이 문제를 포함한 Python 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.