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

Python骰子程序大小写输入兼容及代码优化问题求助

优化方案

改进后的代码

import random

def roll_dice():
    """模拟一对6面骰子的投掷,输出结果"""
    result = random.randint(2, 12)
    print(f"骰子点数: {result}")
    return result

def main():
    # 初始操作选择
    while True:
        choice = input("输入 R 掷骰子,输入 X 退出: ").strip().lower()
        if choice == 'x':
            print("已退出掷骰子程序")
            return
        elif choice == 'r':
            roll_dice()
            break
        else:
            print("无效输入,请重新输入")
    
    # 重复投掷循环
    while True:
        repeat = input("是否再次掷骰子?(Y/N): ").strip().lower()
        if repeat == 'n':
            print("你已结束掷骰子")
            break
        elif repeat == 'y':
            roll_dice()
        else:
            print("无效输入,请输入 Y 或 N")

if __name__ == "__main__":
    main()

关键改进说明

  1. 大小写兼容实现
    对所有用户输入使用strip().lower()处理:

    • strip()去除输入前后的空格,避免用户误输入空格导致判断失效
    • lower()将输入统一转为小写,这样R/r、Y/y、N/n都会被视为相同输入,无需分别判断大小写
  2. 代码精简与逻辑优化

    • 将掷骰子的核心逻辑抽为独立函数roll_dice(),消除重复代码,让职责更单一
    • 使用while True配合break构建输入验证循环,替代原代码中重复的input语句,结构更清晰
    • 整合初始操作和重复操作的逻辑到main()函数,避免原代码中两个函数的逻辑割裂,流程更连贯
    • 移除了原代码中无实际用途的返回值传递,简化逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 14:37:06