|
发表于 2023-6-17 23:29:00
|
显示全部楼层
你希望在输入的数据是字符串或者大于2的数值时给出提示并让用户重新输入,可以通过一个循环来完成。Python提供了 try...except... 语句处理程序在运行中出现的异常。当程序出现异常的时候, try...except... 可以捕获异常并处理,使程序继续运行,而不至于崩溃。下面是你的代码,添加了异常处理和循环的部分:
- import random
- while True:
- try:
- s = int(input("请输入:剪刀(0),石头(1),布(2):")) # 接收输入
- if s not in [0, 1, 2]:
- 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 ,并打印错误信息。然后程序将回到循环的开始,要求用户重新输入。 |
|