Python/Python_Advanced
[파이썬40작] 01. 숫자 맞추기 게임 만들기
묘걍
2024. 1. 23. 18:50
1부터 100까지의 임의의 수를 생성하고 생성된 임의의 수를 맞추는 게임 프로그램
숫자를 하나 입력하면 임의로 생성된 수보다 높은지 낮은지 정답인지를 알려준다
정답을 맞힌 경우 정답을 몇 번 만에 맞추었는지 그 결과로 게임의 승부를 알 수 있다
👉🏻 random함수 기능들
random.random()
- 0.0에서 부터 0.999999 사이의 실수를 반환한다
random.uniform(a, b)
- a와 b 사이의 실수값을 반환한다
random.randint(a, b)
- a와 b사이의 정수값을 반환한다
random.randrange(a, b)
- a와 b사이의 정수값을 반환한다
random.randrange(a)
- 인자가 하나일 경우 0부터 a사이의 정수값을 반환한다
random.choice(type)
- type에는 문자열, 리스트, 튜플, range의 값을 입력받을 수 있고 무작위로 하나의 원소를 뽑는다
🎮 숫자 맞추는 게임 코드 만들기

- 게임의 횟수를 세기 위한 변수 game_count를 생성하고 1의 값으로 대입한다
- 1의 값이 저장된 주소번지를 바인딩한다가 정확한 표현
- 파이썬에서 변수를 초기화하거나 값을 할당할 때, 변수는 그 값에 "바인딩"됩니다. 즉, 변수는 해당 값에 묶여서 그 값을 나타내게 됩니다. 이때 변수는 그 값을 가리키거나 참조하게 되는데, 이 과정을 변수가 값을 "바인딩한다"고 표현합니다.
- while문으로 반복한다. while의 조건이 True이기 때문에 break를 만나기 전까지 계속 반복한다
- 입력 받은 값의 타입을 int 타입으로 변환하여 my_number 변수와 바인딩한다
- 임의로 생성된 숫자보다 입력한 숫자가 크면 다운, 작으면 업을 출력한다
- 임의로 생성된 숫자가 입력한 숫자와 같다면 축하 메시지와 함께 몇번만에 맞췄는지를 출력하고 break를 사용하여 while문을 빠져나간다
- 즉 숫자를 맞추면 프로그램이 종료된다
- 이 부분에서 원래 책에 나온 코드는 elif my_number == random_number:이나 크지도 작지도 않으면 같은 것이기 때문에 else로 바꿨다.
- while문을 한 번 돌때마다 game_count를 증가시켜 몇 번 만에 맞췄는지 횟수를 카운트한다
- 이 부분에서 원래 책에 나온 코드는 game_count = game_count + 1이었으나 game_count += 1로 변경하였다

🎮 게임 코드 트러블 슈팅
입력 받은 값을 int형으로 바꾸기 때문에 사용자가 숫자를 입력하면 어떤 형식이든 int로 바꿔줄 수 있는데 문자를 입력할 경우 에러가 난다


이처럼 사용자가 의도한 것과 다르게 입력할 경우 프로그램이 종료되지 않도록 try except 구문을 이용해 예외처리를 한다

- 메인 코드를 try 안에 넣고
- except를 통해 try문 안에서 에러가 발생했을 경우 except문을 실행한다

출처: 만들면서 배우는 파이썬과 40개의 작품들