学习内容
- 综合运用条件判断和循环
- 添加游戏统计功能(猜测次数、最高分)
- 处理非法输入(如输入非数字)
练习任务
- 为猜数字游戏增加 猜测次数计数,并在猜中后显示“你共猜了 X 次”。
- 增加 难度选择:简单(1-50)、中等(1-100)、困难(1-200)。
- 增加 多次游戏 功能:一轮结束后询问“是否继续游戏?(y/n)”,若输入
y则开始新的一轮。 - (可选)添加输入验证,确保用户输入的是有效整数。
为猜数字游戏增加 猜测次数计数,并在猜中后显示“你共猜了 X 次”。
创建变量counts=0用来计数,每猜一次,counts+1.
import random
num=random.randint(1,100)
counts=0
while True:
yh_num=int(input("请输入你猜测的数字:"))
if yh_num>num:
print("猜大了")
counts+=1
elif yh_num<num:
print("猜小了")
counts+=1
elif yh_num==num:
counts += 1
print(f"恭喜你,猜对了。你总共猜了{counts}次")
break
增加 难度选择:简单(1-50)、中等(1-100)、困难(1-200)。
用户输入选择的难度,使用if进行判断,并生成相应范围的随机数
import random
counts=0
hard=input("请选择难度等级(简单,中等,困难):")
if hard=="简单":
num = random.randint(1, 50)
elif hard=="中等":
num = random.randint(1, 100)
elif hard=="困难":
num = random.randint(1, 200)
while True:
yh_num=int(input("请输入你猜测的数字:"))
if yh_num>num:
print("猜大了")
counts+=1
elif yh_num<num:
print("猜小了")
counts+=1
elif yh_num==num:
counts += 1
print(f"恭喜你,猜对了。你总共猜了{counts}次")
break
增加 多次游戏 功能:一轮结束后询问“是否继续游戏?(y/n)”,若输入 y 则开始新的一轮。
将猜数字游戏的主体放入while的无限循环中,当用户在一轮游戏结束后输入为N时结束
import random
counts=0
while True:
hard = input("请选择难度等级(简单,中等,困难):")
if hard == "简单":
num = random.randint(1, 50)
elif hard == "中等":
num = random.randint(1, 100)
elif hard == "困难":
num = random.randint(1, 200)
while True:
yh_num = int(input("请输入你猜测的数字:"))
if yh_num > num:
print("猜大了")
counts += 1
elif yh_num < num:
print("猜小了")
counts += 1
elif yh_num == num:
counts += 1
print(f"恭喜你,猜对了。你总共猜了{counts}次")
break
goon=input("是否继续游戏(Y或N):")
if goon == "N":
break
(可选)添加输入验证,确保用户输入的是有效整数。
使用字符中的isdigit()方法判断输入的是否是0~9组成的数字
import random
counts=0
while True:
hard = input("请选择难度等级(简单,中等,困难):")
if hard == "简单":
num = random.randint(1, 50)
elif hard == "中等":
num = random.randint(1, 100)
elif hard == "困难":
num = random.randint(1, 200)
while True:
yh_num = int(input("请输入你猜测的数字:"))
if not str(yh_num).isdigit():
print("请输入0~9组成的有效整数")
yh_num = int(input("请输入你猜测的数字:"))
if yh_num > num:
print("猜大了")
counts += 1
elif yh_num < num:
print("猜小了")
counts += 1
elif yh_num == num:
counts += 1
print(f"恭喜你,猜对了。你总共猜了{counts}次")
break
goon=input("是否继续游戏(Y或N):")
if goon == "N":
break