功能需求
尝试利用Python实现一个猜数字小游戏,要求给定用户1—100之间的任意一个数字,用户有十次机会,每次输入一次数字都会减少一次机会。如果用户在机会用完之前猜对数字,或者是在机会用完时也没有猜对数字 那么这场游戏结束。
功能分析
1:引入random模块,使用random.randin()随机生成1—100之间的任意一个整数
2:编写函数,该函数中设置总机会是10,尝试次数是0
3:编写while语句,用于用户输入的数字和随机生成的数字进比较
4:采用input语句获取用户输入数字信息,这里注意,input()获取的是字符串类型的数据,因此需要用int()进行字符转转换成整数类型数据
5:if语句进行用户输入的数字和随机生成的数字之间的比较,并按照功能需求执行不同条件下的打印输出。
程序实现
当然,我们可以使用try...except语句来处理用户输入非法字符串的情况。这样即使用户输入了非数字字符,程序也不会异常退出,而是会给出提示信息并要求用户重新输入。
import random
def guess_number_game():
number_to_guess = random.randint(1, 100)
guess = None
attempts = 0
chances = 10
while chances > 0:
try:
guess = int(input("请猜一个1到100之间的数字(你还有{}次机会):".format(chances)))
except ValueError:
print("无效的输入,请输入一个1到100之间的数字。")
chances -= 1
continue
attempts += 1
if guess < number_to_guess:
print("太低了,请再试一次。")
chances -= 1
elif guess > number_to_guess:
print("太高了,请再试一次。")
chances -= 1
else:
print(f"恭喜你,你猜对了!你一共尝试了{attempts}次。")
break
if chances == 0:
print("很遗憾,你没有在十次机会内猜中答案,程序将退出。")
# 开始游戏
guess_number_game()