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

如何修复Python计算器代码中operation变量未定义的报错

错误原因
  • 作用域问题:operation 是 calculate() 函数内部定义的局部变量,仅在函数内部可访问。你当前将读取数字、判断运算符的逻辑写在了函数外部,外部作用域没有权限访问函数内的局部变量,直接调用就会触发未定义报错。
  • 执行顺序问题:现有代码会优先运行函数外的所有逻辑,最后才调用 calculate() 函数,就算不存在作用域问题,运行到 if operation == '+' 时,operation 还没有被创建,同样会报错。
修复方案

将所有计算器相关逻辑全部缩进放入 calculate() 函数内部即可,修复后代码如下(已将界面提示翻译为中文,也可保留原有英文仅调整缩进):

def calculate():
    operation = input('''
欢迎使用我的计算器\n请选择你要使用的运算类型:
+ ~ 加法
- ~ 减法
* ~ 乘法
/ ~ 除法
''')

    number_1 = float(input("好的\n请输入第一个数字:  "))
    number_2 = float(input("请输入第二个数字:  "))
    if operation == '+':
        print('{} + {} = '.format(number_1, number_2))
        print(number_1 + number_2)
    elif operation == '-':
        print('{} - {} = '.format(number_1, number_2))
        print(number_1 - number_2)
    elif operation == '*':
        print('{} * {} ='.format(number_1, number_2))
        print(number_1 * number_2)
    elif operation == '/':
        print('{} / {} ='.format(number_1, number_2))
        print(number_1 / number_2)
    else:
        print('你必须选择一个运算符。\n可选值:+  -  *  /')

# 在函数外部调用 calculate()
calculate()

调整后调用calculate()时会按顺序执行选择运算符、输入数字、运算输出的完整流程,不会再出现变量未定义的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:48:02