Python中在def自定义函数内使用if语句遇到运行问题求助
Python自定义函数中if语句报错修复方案
核心错误原因
- Python 依靠缩进层级区分代码块范围,不支持用
{}包裹函数体、条件分支等代码结构,你代码中函数内部的大括号属于非法语法,是触发报错的核心原因 - 全局定义的
num2=0和函数形参重名,函数运行时会优先使用调用时传入的实参,该全局变量属于冗余代码不会生效
最小改动可运行版本
仅删除多余大括号即可正常运行:
num2= 0 def a(e,num1,num2): if e == "+": print(num1 + num2) num1 = int(input("")) e = (input("")) num2 = int(input("")) a(e,num1,num2)
优化版本(可读性更强)
优化函数命名、增加输入提示,更符合Python编码规范:
def calc(operator, num1, num2): if operator == "+": print(num1 + num2) num1 = int(input("请输入第一个整数:")) operator = input("请输入运算符(当前仅支持+):") num2 = int(input("请输入第二个整数:")) calc(operator, num1, num2)
内容的提问来源于stack exchange,提问作者anonimos
相关产品推荐
相关产品推荐

