转载请注明出处❤️

作者:测试蔡坨坨

原文链接:caituotuo.top/42f8860d.html


你好,我是测试蔡坨坨。

今天,分享一道Python练习题,适合刚学完Python基础的小伙伴练手。

需求:使用Python代码实现猜数字小游戏

  1. 通过代码生成一个随机的整数(随机整数的范围在1~20之间)
  2. 让用户输入一个整数(输入非整数时需给出提示、输入的整数不在1~20范围内时需给出提示)
  3. 程序提示用户输入的整数是高了还是低了
  4. 直到用户猜中这个数字(即用户输入的整数与系统一开始随机生成的整数一致)
  5. 游戏结束(可以选择退出还是继续游戏,且中途可以选择退出)

提示:random模块的randint函数能够帮助我们生成随机整数。

代码实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# -*- coding:utf-8 -*-
# 作者:测试蔡坨坨
# 时间:2022/11/18 23:02

# 猜数字游戏:
# 代码中生成一个随机整数.
# 然后用户输入数字后,
# 程序提示用户的输入是高了还是低了,
# 直到用户猜中这个数字, 游戏结束.
# 提示, random模块的randint函数能够帮助我们生成随机整数。

from random import randint

correct_num = randint(1, 20) # 随机生成一个大于等于1,小于等于20的整数
is_quit = 'n' # 设置变量is_quit,用于判断是否退出游戏
print('请输入一个1-20的整数(输入q/Q/666可直接退出游戏):')
while is_quit != 'y':
try:
guess_num = input() # 用于获取用户输入的值

if guess_num.upper() == 'Q': # upper(),用户若输入q,则自动转换成Q
guess_num = 666 # 设置一个随机字符串,作为退出循环的条件
guess_num = int(guess_num) # 若用户输入的值为整数,则转换为int类型

if guess_num == correct_num:
print('恭喜你,猜对了,你真棒呀呀呀!')
is_quit = input('您要退出游戏吗? y/n :')
while is_quit != 'y' and is_quit != 'n':
is_quit = input('只能输入 y/n ,请重新输入:')
if is_quit == 'n':
correct_num = randint(1, 20)
print('请输入一个1-20的整数(输入q/Q/666可直接退出游戏):')
elif 1 <= guess_num < correct_num:
print('猜小了,哈哈哈,请重新输入:')
elif correct_num < guess_num <= 20:
print('猜大了,哈哈哈,请重新输入:')
elif guess_num == 666:
is_quit = 'y' # 用于退出循环,结束游戏
else:
# 若输入整数不在1-20范围内,则提示用户重新输入
print('您输入的整数不在1-20范围内,请重新输入:')
except ValueError: # 若输入非整数类型,捕获异常
print('您输入的不是一个整数,请重新输入:')

print('游戏结束!')

运行结果:

涉及知识点:

  • random.randint(x,y)函数生成随机的整数,参数x和y代表生成随机数的区间范围,且包含x和y。

    range(a,b)的取值个数是b-a个,不包含b,比如:range(5)相当于range(0,5),取值为0、1、2、3、4。

  • 赋值运算符=,比较运算符比较两者相等==,比较运算符比较两者不相等!=,比较运算符小于等于<=,比较运算符小于<

  • 输入函数input(“输入提示”),输出函数print()。

  • upper()函数将小写字母转换成大写。

  • 异常捕获 try: …… except: ……