需求及代码
# -*- encoding: utf-8 -*-
"""
需求:
01:程序随机生成0至10的整数【注意,不是先随机生成一个整数,让用户猜测3次哈】
02:用户每轮最多只能猜测3次【每猜测一次,程序要另外生成新的整数】,当第3次还没有猜对的话,根据用户的选择看是否继续
03:用户输入的只能是整数(若输入的是空格、回车、小数、字母、特殊字母,不提示是否输入错误,也不与随机生成的整数做比较,只是提示用户输入整数)
"""
# 打印游戏名称
print("猜测0至10的整数【每轮3次机会】".center(100,"-"))
# 循环判断用户的输入
count = 0
while count < 3:
# 程序生成0至10的整数【每猜测一次,都会生成新的随机整数】
import random
n = random.randint(0, 10)
# 提示用户输入猜测的整数
user_guess = input("请输入你猜测的整数:")
# 判断用户的输入及将用户输入的整数转换成int类型
if len(user_guess.strip()) == 0 or user_guess.isdigit() is False:
continue
if len(user_guess.strip()) != 0 and user_guess.isdigit() is True:
count += 1
# 将用户输入的整数转换成int类型
user_guess_int = int(user_guess)
# 判断用户的猜测与程序随机生成的整数是否相等【这里限制用户每轮最多3次机会,若3次机会还没猜对,根据用户的选择看是否继续】
if count == 1 and user_guess_int> n:
print("猜得不对,还有2次机会,请试试小一点的数。")
elif count == 1 and user_guess_int < n:
print("猜得不对,还有2次机会,请试试大一点的数。")
elif count == 2 and user_guess_int > n:
print("猜得不对,还有1次机会,请试试小一点的数。")
elif count == 2 and user_guess_int < n:
print("猜得不对,还有1次机会,请试试大一点的数。")
elif count == 3 and user_guess_int != n:
choice = input("已第3次机会,且猜得不对,是否继续:继续[Y/y] 退出[任意字符]:")
if choice == "Y" or choice == "y":
count = 0 # 重置count等于0
continue # 跳过当次循环
else:
print("!!!谢谢您的参与")
break
elif user_guess_int == n:
choice1 = input("恭喜你猜对了,是否继续:继续[Y/y] 退出[任意字符]")
if choice1 == "Y" or choice1 == "y":
count = 0 # 重置count等于0
continue # 跳过当次循环
else:
print("!!!谢谢您的参与")
break
代码执行效果