Python实现猜数游戏判断反应快慢
任务要求
使用Python编写一个猜数游戏,系统会随机生成一个1到100之间的整数作为目标数字。玩家需要输入猜测的数字,系统会根据玩家的输入给出提示,如猜的数字过大或过小。同时,要记录玩家每次猜测所花费的时间,以此来判断玩家的反应快慢。当玩家猜对数字后,输出玩家猜测的总次数和平均每次猜测所花费的时间。
任务分析
要实现这个猜数游戏并判断玩家反应快慢,需要完成以下几个关键步骤:
1.随机数生成:利用Python的随机数模块生成1到100之间的随机整数作为目标数字。
2.时间记录:在玩家每次输入猜测数字前后记录时间,计算每次猜测所花费的时间。
3.猜测提示:根据玩家输入的数字与目标数字的大小关系,给出相应的提示(过大或过小)。
4.结束判断:当玩家猜对数字时,结束游戏,并计算玩家猜测的总次数和平均每次猜测所花费的时间。
任务实现
方法一:使用time模块
import random
import time
# 生成 1 到 100 之间的随机数
target_number = random.randint(1, 100)
guess_count = 0
total_time = 0
print("欢迎来到猜数游戏!数字范围是 1 到 100。")
while True:
start_time = time.time()
try:
guess = int(input("请输入你猜测的数字:"))
except ValueError:
print("输入无效,请输入一个整数。")
continue
end_time = time.time()
guess_count += 1
total_time += end_time - start_time
if guess < target_number:
print("猜的数字过小,请再试一次。")
elif guess > target_number:
print("猜的数字过大,请再试一次。")
else:
print(f"恭喜你,猜对了!你一共猜了 {guess_count} 次。")
if guess_count > 0:
average_time = total_time / guess_count
print(f"你平均每次猜测花费的时间是 {average_time:.2f} 秒。")
break
运行结果:从键盘上依次输入猜测数字的字符串。
欢迎来到猜数游戏!数字范围是 1 到 100。
请输入你猜测的数字:50
猜的数字过大,请再试一次。
请输入你猜测的数字:25
猜的数字过小,请再试一次。
请输入你猜测的数字:35
猜的数字过小,请再试一次。
请输入你猜测的数字:40
恭喜你,猜对了!你一共猜了 4 次。
你平均每次猜测花费的时间是 4.20 秒。
进程已结束,退出代码为 0
说明:
- 随机数生成:random.randint(1, 100)用于生成一个 1 到 100 之间的随机整数作为目标数字。
- 时间记录:在玩家输入猜测数字前,使用time.time()记录开始时间;输入后,再次使用time.time()记录结束时间,两者相减得到本次猜测所花费的时间。
- 输入验证:使用try-except语句捕获玩家输入非整数的情况,若输入无效则提示玩家重新输入。
- 猜测提示:通过比较玩家输入的数字与目标数字的大小,输出相应的提示信息。
- 结束判断:当玩家猜对数字时,计算猜测的总次数和平均每次猜测所花费的时间,并输出结果。
方法二:使用datetime模块
import random
from datetime import datetime
# 生成 1 到 100 之间的随机数
target_number = random.randint(1, 100)
guess_count = 0
total_time = 0
print("欢迎来到猜数游戏!数字范围是 1 到 100。")
while True:
start_time = datetime.now()
try:
guess = int(input("请输入你猜测的数字:"))
except ValueError:
print("输入无效,请输入一个整数。")
continue
end_time = datetime.now()
guess_count += 1
total_time += (end_time - start_time).total_seconds()
if guess < target_number:
print("猜的数字过小,请再试一次。")
elif guess > target_number:
print("猜的数字过大,请再试一次。")
else:
print(f"恭喜你,猜对了!你一共猜了 {guess_count} 次。")
if guess_count > 0:
average_time = total_time / guess_count
print(f"你平均每次猜测花费的时间是 {average_time:.2f} 秒。")
break
运行结果:从键盘上依次输入猜测数字的字符串。
欢迎来到猜数游戏!数字范围是 1 到 100。
请输入你猜测的数字:50
猜的数字过小,请再试一次。
请输入你猜测的数字:80
猜的数字过大,请再试一次。
请输入你猜测的数字:70
猜的数字过大,请再试一次。
请输入你猜测的数字:60
恭喜你,猜对了!你一共猜了 4 次。
你平均每次猜测花费的时间是 3.66 秒。
进程已结束,退出代码为 0
说明:
- 随机数生成:同样使用random.randint(1, 100)生成目标数字。
- 时间记录:使用datetime.now()记录开始时间和结束时间,通过(end_time - start_time).total_seconds()计算本次猜测所花费的时间。
- 输入验证、猜测提示和结束判断:与方法一相同。