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

计算器循环复用、退出异常及NameError(name 'main' is not defined)问题求助

问题分析与修复方案

核心问题

  1. NameError: name 'main' is not defined:你调用了main()函数,但代码里根本没定义这个函数,Python找不到它所以报错。
  2. 输入9无法触发退出流程+无法循环回到初始界面:操作选择的输入chr=int(input(...))写在while True循环外面,程序只会在启动时读取一次用户选择,之后循环会一直重复第一次的操作逻辑,不会重新显示菜单让用户选择新操作。
  3. 无效输入分支冗余:单独判断chr=5到8的写法太繁琐,完全可以合并成一个分支处理所有非1-4、非9的输入。

修复后的代码

while True:
    # 每次循环都重新显示菜单
    print("calculator")
    print("1.Pluss")
    print("2.Minus")
    print("3.Ganging")
    print("4.Deling")
    print("9.Avslutt")

    try:
        chr = int(input("1-4 eller Avslutt: "))
    except ValueError:
        print("请输入有效的数字(1-4或9)")
        continue

    if chr == 1:
        a = int(input("Number 1:"))
        b = int(input("Number 2:"))
        c = a + b
        print("sum = ", c)
    elif chr == 2:
        a = int(input("Number 1:"))
        b = int(input("Number 2:"))
        c = a - b
        print("sum = ", c)
    elif chr == 3:
        a = int(input("Number 1:"))
        b = int(input("Number 2:"))
        c = a * b
        print("sum = ", c)
    elif chr == 4:
        a = int(input("Number 1:"))
        b = int(input("Number 2:"))
        try:
            c = a / b
            print("sum = ", c)
        except ZeroDivisionError:
            print("除数不能为0!")
    elif chr == 9:
        print("Thank you for using my calculator!")
        again = input("Do you want to keep using my calculator? y/n: ")
        if again.lower() != "y":
            print("Thank you!")
            break
        # 如果输入y/Y,循环会自动回到开头显示菜单
    else:
        print("请输入1-4之间的数字或9退出!")

关键改动说明

  • 把菜单显示和操作选择移到while True循环内部,确保每次循环都能重新显示菜单并获取用户的新选择。
  • 移除了错误的main()调用,用户输入y/Y时,循环会自动回到开头,重新执行菜单显示和选择逻辑。
  • 添加了try-except处理:
    • 捕获用户输入非数字的情况,避免程序崩溃。
    • 处理除法时的除数为0错误,增强程序健壮性。
  • 合并了冗余的无效输入判断,用一个else分支处理所有非1-4、非9的输入。
  • 调整了退出逻辑:当用户输入9时直接触发退出询问流程,逻辑更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 22:55:34