文章目录
1 杂谈
又见面了,很高兴我的粉丝达到了88名,又是动力满满的一天呢。今天我给大家带来的是一个猜数字游戏的程序设计。
2 任务描述
编写一个Python函数来实现一个简单的猜数字游戏。函数应该生成一个1到100之间的随机数,然后让用户猜这个数字。每次猜测后,函数应该告诉用户他们的猜测是太高、太低还是正确。用户应该有最多10次猜测的机会。
3 问题剖析
要想解决这个问题,有几个关键点需要注意:
- 首先要生成一个随机数,这需要导入随机数相关的库–
random
; - 猜测的数字需要键入,但是在此之前为了保证代码整体的鲁棒性,我们需要先检验用户键入的是否为整数(否则用户键入非整数时代码会报错崩溃);
- 控制用户的猜测机会数,这需要一个循环体。
4 程序设计
4.1 导入模块
import random
这一行代码导入了Python标准库中的random
模块,提供了生成随机数的功能。该模块中的randint()
函数将在后面的代码中用于生成一个随机数。
4.2 定义函数
def guess_number():
这行代码定义了一个名为guess_number
的函数,用于实现整个猜数字游戏的逻辑。
4.3 生成随机数
number = random.randint(1, 100)
这里使用random.randint(1, 100)
生成一个1到100之间的随机整数,并将其赋值给变量number
。这个数字就是玩家需要猜测的目标数字。
4.4 打印游戏介绍信息
print("我想了一个1到100之间的数字,你有10次机会猜它。")
这一行代码输出了一条信息,告诉玩家游戏的规则:系统生成了一个1到100之间的随机数字,玩家有10次机会猜测。
4.5 开始循环猜测
for chance in range(10):
for
循环开始,range(10)
生成从0到9的整数序列,总共10次循环。变量chance
表示当前是第几次尝试。
4.6 捕获用户输入并处理异常
try:
guess = int(input(f"请猜一个数字(还剩{10-chance}次机会):"))
except ValueError:
print("请输入有效的数字!")
continue
try
块中的input()
函数提示玩家输入一个数字,并将其转换为整数类型;- 如果玩家输入的不是有效的数字(例如字母或符号),会抛出
ValueError
异常,except
块捕获这个异常,并提示玩家“请输入有效的数字!”,然后通过continue
语句跳过当前循环,继续下一次猜测。
4.7 判断猜测结果
if guess == number:
print(f"恭喜你,猜对了!")
return
elif guess < number:
print("太低了!")
else:
print("太高了!")
- 首先,代码检查玩家猜测的数字
guess
是否与目标数字number
相等。如果相等,则玩家猜对了,程序输出“恭喜你,猜对了!”,然后使用return
结束函数执行; - 如果猜测的数字小于目标数字,输出“太低了!”,提示玩家猜的数字太小;
- 如果猜测的数字大于目标数字,输出“太高了!”,提示玩家猜的数字太大。
4.8 猜测次数用完后的提示
print(f"很遗憾,你没有猜对。正确答案是{number}。")
如果玩家在10次猜测机会内没有猜对数字,循环结束后输出“很遗憾,你没有猜对。正确答案是{number}。”,并告诉玩家正确答案。
4.9 调用游戏开始游戏
guess_number()
最后一行代码调用了guess_number()
函数,启动猜数字游戏。
5 全部代码
#题目:猜数字游戏
import random
def guess_number():
number = random.randint(1, 100)
print("我想了一个1到100之间的数字,你有10次机会猜它。")
for chance in range(10):
try:
guess = int(input(f"请猜一个数字(还剩{10-chance}次机会):"))
except ValueError:
print("请输入有效的数字!")
continue
if guess == number:
print(f"恭喜你,猜对了!")
return
elif guess < number:
print("太低了!")
else:
print("太高了!")
print(f"很遗憾,你没有猜对。正确答案是{number}。")
guess_number()
6 先验知识
6.1 随机数生成方式
语法结构如下:
number = random.randint(first, end)
其中,first
为生成随机数的下界,end
为生成随机数的上界。number储存的是一个从first
到end
的随机整数。
6.2 异常处理–try…except语句
在Python中,try...except
语句用于处理可能在运行时出现的异常。其基本语法结构如下:
try:
# 可能会引发异常的代码块
risky_code()
except SomeException as e:
# 当捕获到SomeException异常时,执行的代码块
handle_exception(e)
try:
尝试执行代码块。如果代码块中发生了异常,程序会立即跳到except
块,并跳过try
块中剩下的代码;except SomeException as e:
如果在try
块中发生了SomeException
异常,执行except
块中的代码。SomeException
可以是Python内置的异常类型(如ValueError
,TypeError
等)或自定义的异常类型。as e
部分是可选的,用于获取异常实例,并赋值给变量e
,这样可以在except
块中访问异常的详细信息。
这段代码可以保证代码整体的鲁棒性,不会因为用户输入的不是整数而运行不出来。
6.3 字符串格式化方法
f""
字符串使用前缀 f
或 F
,并允许在字符串内部直接嵌入表达式。这些表达式会在运行时求值,然后插入到字符串中。比如:
name = "Alice"
age = 30
greeting = f"Hello, {name}! You are {age} years old."
print(greeting)
输出:
Hello, Alice! You are 30 years old.
。比如:
name = "Alice"
age = 30
greeting = f"Hello, {name}! You are {age} years old."
print(greeting)
输出:
Hello, Alice! You are 30 years old.