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()
关键改进说明
大小写兼容实现
对所有用户输入使用strip().lower()处理:strip()去除输入前后的空格,避免用户误输入空格导致判断失效lower()将输入统一转为小写,这样R/r、Y/y、N/n都会被视为相同输入,无需分别判断大小写
代码精简与逻辑优化
- 将掷骰子的核心逻辑抽为独立函数
roll_dice(),消除重复代码,让职责更单一 - 使用
while True配合break构建输入验证循环,替代原代码中重复的input语句,结构更清晰 - 整合初始操作和重复操作的逻辑到
main()函数,避免原代码中两个函数的逻辑割裂,流程更连贯 - 移除了原代码中无实际用途的返回值传递,简化逻辑
- 将掷骰子的核心逻辑抽为独立函数
内容的提问来源于stack exchange,提问作者lukimari444
相关产品推荐
相关产品推荐

