小白求助
importrandomx = random.randint(0,2)
s = int(input("请输入:剪刀(0),石头(1),布(2):")) #接收输入
#判断输入
if s == 0:
print(f"你输入的是:剪刀{s}")
elif s == 1:
print(f"你输入的是:石头{s}")
elif s == 2:
print(f"你输入的是:布{s}")
print(f"随机数是:{x}") #如果输入的是字符串或者大于2的数据给出提示重新输入代码应该怎么写
#判断随机数和输入的数
if x == 0 and s == 1:
print("你赢了")
elif x == 1 and s == 2:
print("你赢了")
elif x == 2 and s == 0:
print("你赢了")
elif x == s:
print("重新开始")
else:
print("你输了")
你希望在输入的数据是字符串或者大于2的数值时给出提示并让用户重新输入,可以通过一个循环来完成。Python提供了 try...except... 语句处理程序在运行中出现的异常。当程序出现异常的时候, try...except... 可以捕获异常并处理,使程序继续运行,而不至于崩溃。下面是你的代码,添加了异常处理和循环的部分:
import random
while True:
try:
s = int(input("请输入:剪刀(0),石头(1),布(2):"))# 接收输入
if s not in :
raise ValueError("输入必须是 0,1,2中的一个数字")
x = random.randint(0, 2)
# 判断输入
if s == 0:
print(f"你输入的是:剪刀{s}")
elif s == 1:
print(f"你输入的是:石头{s}")
elif s == 2:
print(f"你输入的是:布{s}")
print(f"随机数是:{x}")
# 判断随机数和输入的数
if x == 0 and s == 1:
print("你赢了")
elif x == 1 and s == 2:
print("你赢了")
elif x == 2 and s == 0:
print("你赢了")
elif x == s:
print("重新开始")
else:
print("你输了")
break# 如果一切正常,跳出循环
except ValueError as e:# 处理错误的输入
print(f"错误的输入:{e}")
在这个代码中, while True: 将程序置于一个无限循环中,只有当用户输入正确的值或者用户赢了、输了或者平局后,程序才会跳出这个循环。在循环中,使用 try...except... 语句来处理可能出现的错误。当用户输入的不是一个整数或者不是0,1,2时,程序将抛出 ValueError ,并打印错误信息。然后程序将回到循环的开始,要求用户重新输入。 代码中如果输入的是字符串或者大于2的数据,会产生类型错误,导致程序崩溃。我们可以使用try...except语句来捕获这种异常,给出友好的提示并要求重新输入。代码如下:
import random
while True:
try:
s = int(input("请输入:剪刀(0),石头(1),布(2):"))
if s < 0 or s > 2:
print("请输入0到2之间的整数!")
continue
else:
break
except ValueError:
print("请输入正确的数字!")
x = random.randint(0, 2)
# 判断输入
if s == 0:
print(f"你输入的是:剪刀{s}")
elif s == 1:
print(f"你输入的是:石头{s}")
elif s == 2:
print(f"你输入的是:布{s}")
print(f"随机数是:{x}")
# 判断随机数和输入的数
if x == 0 and s == 1:
print("你赢了")
elif x == 1 and s == 2:
print("你赢了")
elif x == 2 and s == 0:
print("你赢了")
elif x == s:
print("重新开始")
else:
print("你输了") 如果输入的是字符串或大于2的数据,可以使用try-except语句捕获异常并给出提示重新输入。以下是修改后的代码:
import random
try: # 尝试接收输入,如果输入不是整数会抛出异常
s = int(input("请输入:剪刀(0),石头(1),布(2):"))
# 判断输入
if s == 0:
print(f"你输入的是:剪刀{s}")
elif s == 1:
print(f"你输入的是:石头{s}")
elif s == 2:
print(f"你输入的是:布{s}")
else: # 如果输入了其他数字,给出提示并重新输入
print("输入无效,请输入0、1或2")
exit()
x = random.randint(0, 2)
print(f"随机数是:{x}")
# 判断随机数和输入的数
if x == 0 and s == 1:
print("你赢了")
elif x == 1 and s == 2:
print("你赢了")
elif x == 2 and s == 0:
print("你赢了")
elif x == s:
print("重新开始")
else:
print("你输了")
except ValueError:# 捕获输入值错误
print("输入无效,请输入0、1或2")
求最佳答案{:10_254:}
页:
[1]