如何修复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
相关产品推荐
相关产品推荐

