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

我做了一个基础Python计算器,如何优化使其更高效整洁?

Python计算器代码优化方案

现有代码的核心问题

  • 存在冗余计算:不管用户选择哪种运算,提前把加减乘除四个结果全部算完,完全浪费性能,后续如果拓展复杂运算这个问题会更明显
  • 没有做输入校验:用户输入非数字内容、选择1-4之外的选项、除法运算输入0作为除数时,代码会直接报错崩溃
  • 代码冗余度高:菜单打印用了多次重复的print语句,多分支if判断拓展性差,新增运算需要额外写判断逻辑

优化后代码(兼容在线GDB平台,无第三方依赖)

# 打印菜单,用三引号多行字符串减少重复print调用
print("""1. 加法
2. 减法
3. 乘法
4. 除法
""")

# 封装数字输入校验逻辑,避免重复代码
def input_integer(prompt):
    while True:
        try:
            return int(input(prompt))
        except ValueError:
            print("输入不合法,请输入整数")

# 获取合法的运算数
num1 = input_integer("请输入第一个数字:")
num2 = input_integer("请输入第二个数字:")

# 获取合法的操作选项
while True:
    choice = input_integer("请输入选项(1-4): ")
    if 1 <= choice <= 4:
        break
    print("选项无效,请输入1到4之间的整数")

# 用字典映射替代多分支if,后续新增运算直接加字典项即可
operation_map = {
    1: ("和", lambda x, y: x + y),
    2: ("差", lambda x, y: x - y),
    3: ("积", lambda x, y: x * y),
    4: ("商", lambda x, y: x / y if y != 0 else "错误:除数不能为0")
}

op_name, op_func = operation_map[choice]
result = op_func(num1, num2)
print(f"{op_name} = {result}")

优化点说明

  • 仅在确认用户选择的运算后才执行对应计算,消除了冗余运算
  • 新增了全链路的输入合法性校验,避免非法输入导致程序崩溃
  • 用字典映射替代多分支if判断,代码可维护性大幅提升,新增运算不需要修改判断逻辑,仅需在operation_map中新增对应配置即可
  • 封装了重复的输入校验逻辑,减少冗余代码,可读性更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:15:02