본문 바로가기
Python 프로그래밍

파이썬 기초 프로젝트 - 랜덤 숫자 맞추기

by ♥︎♦︎★ 2022. 8. 28.

파이썬의 랜덤숫자 만들기(정수)

파이썬에서 랜덤 숫자를 생성하는 방법은 매우 쉽다. 

number = random.randint(1, 99)

이 코드는 1에서 99번까지의 랜덤 수를 발생시켜 number라는 변수에 삽입하게 된다. 

 

파이썬에서 사용자 입력받기

사용자 입력은 아래 처럼 input 함수를 이용하여 간단하게  입력을 받을 수 있는데, 

a = input()

타입캐스팅이나 예외처리를 위해서는 보다 세심한 코드 작성이 필요할 수 있다.

아래 코드를 보자.

def input_check(msg, casting=int):
    while True:
        try:
            user_input = casting(input("숫자를 맞춰보세요 (1~99) >> "))
            return user_input
        except:
            continue

user_input = input_check("숫자를 맞춰보세요 (1~99) >> ")

이 코드는 user_input 이라는 변수에 사용자 입력을 받을때, input_check 이라는 함수를 통해 받게 된다. 

이 함수 내에선 while 무한루프에서 int 타입이 아닌 값을 사용자가 입력하면 except를 발생시켜 무한루프에 빠지게 하여 int 값을 입력할때 비로소 해당 함수를 빠져나오게 된다. 

사실 귀찮은 일이지만 이렇게 해두면 사용자의 실수를 방지하여 갑작스레 프로그램이 죽는 문제를 방지할 수 있다. 

 

전체 소스 코드

사용자로부터 입력을 받아 랜덤 숫자를 맞추는 간단한 게임 소스코드를 올려본다.

import random
import os

def input_check(msg, casting=int):
    while True:
        try:
            user_input = casting(input("숫자를 맞춰보세요 (1~99) >> "))
            return user_input
        except:
            continue


chance = 10
count = 0
number = random.randint(1, 99)

os.system("cls")
while count < chance :
    count += 1
    
    if number == user_input:
        print("정답")
        break
    elif user_input < number :
        print("{} 보다 큰 숫자 입니다." .format(user_input))
    elif user_input > number :
        print("{} 보다 작은 숫자 입니다." .format(user_input))
        
    else:
        print("땡")

if number == user_input:    
    print("성공! {} 이 맞습니다." .format(user_input))    
else:    
    print("실패! 정답은 {} 입니다." .format(user_input))

아래는 실행 화면이다. 

 

 

 

※ 본 소스코드 및 내용은 "인프런- 남박사의 파이썬 기초부터 실전100% 활용" 강의를 참고로 작성되었습니다.

https://www.inflearn.com/course/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%99%9C%EC%9A%A9

'Python 프로그래밍' 카테고리의 다른 글

파이썬 기초 프로젝트 - 숫자 야구 게임  (0) 2022.08.29

댓글