鱼C论坛

 找回密码
 立即注册
查看: 1223|回复: 3

[已解决]小白求助

[复制链接]
发表于 2023-6-17 23:26:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import  random
x = 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("你输了")
       
最佳答案
2023-6-17 23:44:32
代码中如果输入的是字符串或者大于2的数据,会产生类型错误,导致程序崩溃。我们可以使用try...except语句来捕获这种异常,给出友好的提示并要求重新输入。代码如下:

  1. import random

  2. while True:
  3.     try:
  4.         s = int(input("请输入:剪刀(0),石头(1),布(2):"))
  5.         if s < 0 or s > 2:
  6.             print("请输入0到2之间的整数!")
  7.             continue
  8.         else:
  9.             break
  10.     except ValueError:
  11.         print("请输入正确的数字!")

  12. x = random.randint(0, 2)

  13. # 判断输入
  14. if s == 0:
  15.     print(f"你输入的是:剪刀{s}")
  16. elif s == 1:
  17.     print(f"你输入的是:石头{s}")
  18. elif s == 2:
  19.     print(f"你输入的是:布{s}")

  20. print(f"随机数是:{x}")

  21. # 判断随机数和输入的数
  22. if x == 0 and s == 1:
  23.     print("你赢了")
  24. elif x == 1 and s == 2:
  25.     print("你赢了")
  26. elif x == 2 and s == 0:
  27.     print("你赢了")
  28. elif x == s:
  29.     print("重新开始")
  30. else:
  31.     print("你输了")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-17 23:29:00 | 显示全部楼层
你希望在输入的数据是字符串或者大于2的数值时给出提示并让用户重新输入,可以通过一个循环来完成。Python提供了 try...except... 语句处理程序在运行中出现的异常。当程序出现异常的时候, try...except... 可以捕获异常并处理,使程序继续运行,而不至于崩溃。下面是你的代码,添加了异常处理和循环的部分:

  1. import random

  2. while True:
  3.     try:
  4.         s = int(input("请输入:剪刀(0),石头(1),布(2):"))  # 接收输入

  5.         if s not in [0, 1, 2]:
  6.             raise ValueError("输入必须是 0,1,2中的一个数字")

  7.         x = random.randint(0, 2)

  8.         # 判断输入
  9.         if s == 0:
  10.             print(f"你输入的是:剪刀{s}")

  11.         elif s == 1:
  12.             print(f"你输入的是:石头{s}")
  13.         elif s == 2:
  14.             print(f"你输入的是:布{s}")

  15.         print(f"随机数是:{x}")  

  16.         # 判断随机数和输入的数
  17.         if x == 0 and s == 1:
  18.             print("你赢了")
  19.         elif x == 1 and s == 2:
  20.             print("你赢了")
  21.         elif x == 2 and s == 0:
  22.             print("你赢了")
  23.         elif x == s:
  24.             print("重新开始")
  25.         else:
  26.             print("你输了")
  27.             
  28.         break  # 如果一切正常,跳出循环

  29.     except ValueError as e:  # 处理错误的输入
  30.         print(f"错误的输入:{e}")
复制代码

在这个代码中, while True: 将程序置于一个无限循环中,只有当用户输入正确的值或者用户赢了、输了或者平局后,程序才会跳出这个循环。在循环中,使用 try...except... 语句来处理可能出现的错误。当用户输入的不是一个整数或者不是0,1,2时,程序将抛出 ValueError ,并打印错误信息。然后程序将回到循环的开始,要求用户重新输入。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-17 23:44:32 | 显示全部楼层    本楼为最佳答案   
代码中如果输入的是字符串或者大于2的数据,会产生类型错误,导致程序崩溃。我们可以使用try...except语句来捕获这种异常,给出友好的提示并要求重新输入。代码如下:

  1. import random

  2. while True:
  3.     try:
  4.         s = int(input("请输入:剪刀(0),石头(1),布(2):"))
  5.         if s < 0 or s > 2:
  6.             print("请输入0到2之间的整数!")
  7.             continue
  8.         else:
  9.             break
  10.     except ValueError:
  11.         print("请输入正确的数字!")

  12. x = random.randint(0, 2)

  13. # 判断输入
  14. if s == 0:
  15.     print(f"你输入的是:剪刀{s}")
  16. elif s == 1:
  17.     print(f"你输入的是:石头{s}")
  18. elif s == 2:
  19.     print(f"你输入的是:布{s}")

  20. print(f"随机数是:{x}")

  21. # 判断随机数和输入的数
  22. if x == 0 and s == 1:
  23.     print("你赢了")
  24. elif x == 1 and s == 2:
  25.     print("你赢了")
  26. elif x == 2 and s == 0:
  27.     print("你赢了")
  28. elif x == s:
  29.     print("重新开始")
  30. else:
  31.     print("你输了")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-18 11:27:21 | 显示全部楼层
如果输入的是字符串或大于2的数据,可以使用try-except语句捕获异常并给出提示重新输入。以下是修改后的代码:


  1. import random

  2. try:    # 尝试接收输入,如果输入不是整数会抛出异常
  3.     s = int(input("请输入:剪刀(0),石头(1),布(2):"))

  4.     # 判断输入
  5.     if s == 0:
  6.         print(f"你输入的是:剪刀{s}")
  7.     elif s == 1:
  8.         print(f"你输入的是:石头{s}")
  9.     elif s == 2:
  10.         print(f"你输入的是:布{s}")
  11.     else:   # 如果输入了其他数字,给出提示并重新输入
  12.         print("输入无效,请输入0、1或2")
  13.         exit()

  14.     x = random.randint(0, 2)
  15.     print(f"随机数是:{x}")

  16.     # 判断随机数和输入的数
  17.     if x == 0 and s == 1:
  18.         print("你赢了")
  19.     elif x == 1 and s == 2:
  20.         print("你赢了")
  21.     elif x == 2 and s == 0:
  22.         print("你赢了")
  23.     elif x == s:
  24.         print("重新开始")
  25.     else:
  26.         print("你输了")

  27. except ValueError:  # 捕获输入值错误
  28.     print("输入无效,请输入0、1或2")
复制代码


求最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-19 06:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表