自定义面数骰子Python脚本输入整数时崩溃,该如何修复?
问题修复说明
崩溃原因
input()函数返回值为字符串类型,你未做类型转换直接将其传入random.randint()作为第二个参数,而该方法要求两个入参均为整数,类型不匹配直接触发运行错误。- 你后续修改的
if is_non_empty is false:写法不符合Python语法规范,Python中布尔假值为大写的False,小写形式会被识别为未定义变量,触发变量未定义错误。 - 原代码导入的
keyboard库全程未被使用,属于冗余导入,可以直接删除无需额外安装。
可运行优化代码
import random import time sides_select = input("请输入骰子的面数,留空则默认为6:") # 处理空输入 if not sides_select: sides = 6 else: # 增加异常捕获处理非法输入场景 try: sides = int(sides_select) if sides < 2: print("骰子面数不能小于2,已自动设置为6面") sides = 6 except ValueError: print("你输入的不是合法数字,已自动设置为6面") sides = 6 time.sleep(0.5) while True: nmb = random.randint(1, sides) print(f"骰子掷出了:{nmb}") input('按回车键再次掷骰子') time.sleep(random.uniform(0.2, 0.8))
内容的提问来源于stack exchange,提问作者rOxANDtOl
相关产品推荐
相关产品推荐

