반응형
# 📝 [실습 TODO] 내친김에 '횟수 제한'까지 도전?
# 스마트폰 잠금 화면을 생각해 보세요. 영원히 기회를 주진 않죠? 보통 5번 틀리면 몇 분 동안 잠겨버립니다.
# 방금 배운 while문과 if문을 응용해서 아래의 미션을 수행해 보세요!
# 문제: 사용자가 비밀번호를 입력할 수 있는 기회를 딱 5번만 주는 프로그램을 만들어 보세요.
# 힌트 1: 기회를 셀 수 있는 새로운 변수(예: count = 0)를 while문 바깥에 만들어야 합니다.
# 힌트 2: 틀릴 때마다 count를 1씩 증가시킵니다. (count = count + 1)
# 힌트 3: count가 5가 되면 "5회 틀렸습니다. 종료합니다."를 출력하고 break로 탈출하게 만드세요.
count = 0
pwd = 4545
while True:
user_input = int(input("비밀번호를 입력해주세요"))
if pwd == user_input:
print("잠금이 해제되었습니다.")
break
else:
count += 1
print(f"비밀번호가 틀렸습니다. 틀린 횟수 {count}/5")
if count == 5:
print("비밀번호 5회 틀렸습니다. 프로그램을 강제 종료합니다.")
break
배운점
if count == 5 이 부분이 else 아래로 들어갈 것이라는 것은 전혀 예상치 못했다.
항상 if문은 맨 위에 있어야 한다고 생각했었는데 이 if는 else에 대한 영향을 받는 if문이기에 else 아래에서 작동한다.
그리고 user_input = int(input())을 while 바깥쪽으로 두었더니 1번의 비밀번호 오류에도 5번 모두 틀린 것으로 나온다.
반복하면서 입력도 반복해줘야하는데 잘못된 비밀번호가 반복되어 5번 오류가 된 것이다.

반응형
'두두 IT > 파이썬 퀴즈' 카테고리의 다른 글
| [W3S 오답노트] Python Write to File / Remove File (0) | 2026.05.06 |
|---|---|
| [W3S 오답노트] Python File Handling / Python Open File (0) | 2026.05.06 |
| [W3S 오답노트] Python Inner Class (0) | 2026.05.06 |
| [W3S 오답노트] Python Encapsulation __ (0) | 2026.05.06 |
| [W3S 오답노트] Python Inheritance (0) | 2026.05.06 |