파이썬 기초 문법을 총동원하여 진짜 프로그램을 만들어 봅시다!
파이썬 기초 문법을 총동원하여 진짜 프로그램을 만들어 봅시다!
드디어 2주차의 마지막 날입니다! 지난 14일 동안 변수부터 함수, 내장 함수까지 쉼 없이 달려오셨는데요. 오늘은 이 모든 개념을 하나로 엮어 '숫자 맞추기 게임'을 직접 제작해 보겠습니다.
코드를 한 줄씩 따라 치는 것에 그치지 않고, 각 로직이 왜 필요한지 고민하며 완성해 보세요!
무작정 코딩을 시작하기 전, 프로그램이 어떻게 돌아갈지 머릿속으로 그려보는 것이 중요합니다.
컴퓨터가 매번 다른 숫자를 뽑게 하려면 파이썬의 random 모듈이 필요합니다.
import random # 랜덤 기능을 가져옵니다. # 1부터 100 사이의 정수 하나를 뽑아 정답으로 저장 answer = random.randint(1, 100)
이제 while 루프와 if 조건문을 조합하여 게임을 완성해 봅시다.
import random
def play_game():
answer = random.randint(1, 100)
attempts = 0 # 시도 횟수
print("--- 숫자 맞추기 게임을 시작합니다 (1~100) ---")
while True:
guess = int(input("숫자를 입력하세요: "))
attempts += 1 # 입력할 때마다 횟수 증가
if guess == answer:
print(f"축하합니다! {attempts}번 만에 맞히셨습니다.")
break # 정답을 맞히면 무한 루프 탈출
elif guess < answer:
print("Up!")
else:
print("Down!")
# 게임 실행
play_game()
while 반복 + if/elif/else 조건 분기로 “Up/Down” 힌트를 주는 구조
1~100 중에서 랜덤 정답을 하나 고르고, 시도 횟수(attempts)를 0으로 시작합니다.
사용자가 숫자를 입력하면, 입력할 때마다 시도 횟수 +1 합니다.
정답을 맞힐 때까지 계속 반복합니다. (무한 루프)
{attempts}번 만에 맞히셨습니다 처럼 시도 횟수까지 함께 출력하고 종료합니다.
1. 형변환 (int): input()으로 받은 값은 문자열이므로 계산을 위해 반드시 정수로 바꿔줘야 합니다.
2. 무한 루프와 break: 정답을 맞히기 전까지는 계속 반복해야 하므로 while True:를 사용하고, 정답 시 break로 멈춰줍니다.
3. 변수 업데이트: attempts += 1을 통해 데이터가 실시간으로 변하는 과정을 관리합니다.
"더 똑똑한 게임 만들기"
1. 시도 횟수가 10번을 넘어가면 "실패! 정답은 X였습니다."라고 출력하고 종료되게 해보세요.
2. 숫자가 아닌 문자를 입력했을 때 에러가 나지 않도록 처리할 수 있을까요? (힌트: isnumeric() 함수 활용)
댓글
댓글 쓰기