You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python保龄球分数统计代码如何限制输入范围并避免回车报错

保龄球分数统计代码修改方案

现有代码存在两个核心问题:

  • 未对输入内容做合法性校验,空输入、非数字输入直接转int会触发ValueError崩溃
  • 未限制分数范围,会存储0-300以外的无效分数
修改后的完整代码
# 存储有效分数
nums = []

# 循环接收用户输入
while True:
    scores = input("Please enter a score (xxx) or 'q' to exit: ")
    # 先判断是否退出
    if scores.lower() == 'q':
        print("quitting")
        break
    # 处理非退出输入的校验逻辑
    try:
        score = int(scores)
    except ValueError:
        # 空输入、非数字内容都会走这个分支
        print("无效输入,请输入0-300之间的数字或者'q'退出")
        continue
    # 校验分数范围
    if 0 <= score <= 300:
        nums.append(score)
    else:
        print("分数超出合法范围(0-300),请重新输入")
        continue

# 空列表判断,避免除以零报错
if not nums:
    print("未输入任何有效分数")
else:
    total = sum(nums)
    print("")
    print(f"You played {len(nums)} games")
    print(f"The total score is: {total}")
    average = total / len(nums)
    print("The score average is: ", round(average, 2))
关键修改说明
  • 新增异常捕获逻辑:用try...except包裹输入转int的逻辑,遇到空输入、非数字输入时直接提示错误并跳过后续逻辑,回到输入等待阶段
  • 新增分数范围校验:转成整数后判断是否在0-300区间内,仅合法值才存入列表
  • 调整统计逻辑位置:将总分、平均分计算移到循环结束后,避免循环内重复无意义计算
  • 新增空列表判断:防止未输入任何有效分数时,计算平均分触发除以零的错误

内容的提问来源于stack exchange,提问作者Ryan B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:57:01