Python 3.x 如何修复自己定义的函数中出现的NameError?
我正在尝试做一个简单的数学函数,它将两个变量相加。然而,如果在函数中输入字符串,一切都会变得疯狂。Try/Except由于某些原因不起作用:Python 3.x 如何修复自己定义的函数中出现的NameError?,python-3.x,function,Python 3.x,Function,我正在尝试做一个简单的数学函数,它将两个变量相加。然而,如果在函数中输入字符串,一切都会变得疯狂。Try/Except由于某些原因不起作用: def addtwo(a,b): if int(a) and int(b): added=a+b else: added=print("Insert a number!") return added 由于此函数,不会出现NameError。此外,您的函数编写错误。NameError将无法解决(因为您
def addtwo(a,b):
if int(a) and int(b):
added=a+b
else:
added=print("Insert a number!")
return added
由于此函数,不会出现NameError。此外,您的函数编写错误。NameError将无法解决(因为您没有共享该部分)。但addtwo函数带来的其他错误将通过以下方式解决:-
>>> def addtwo(a,b):
... if isinstance(a, int) and isinstance(b,int):
... added = a+b
... else:
... added = "Insert a number!"
... return added
>>> print(addtwo(7,5))
12
>>> print(addtwo("str",5))
Insert a number!
在代码
中,如果int(a)和int(b):
在检查整数值时产生问题。它将给出此错误ValueError:int()的无效文本,以10为基数:“str”
。因此,请使用isinstance
而不是int
。而且added=print(“插入一个数字!”)
完全错误。在设置变量之前调用变量时会引发名称错误。这意味着您的a
和b
变量可能设置不正确
在函数中输入字符串将导致无效文本,这是一个完全不同的问题。可以使用
try
和except
来处理这一问题。您在问题中提到了try/except,但在显示的代码中没有使用它。您所展示的代码是否与您所谈论的不同?您在标题中提到的NameError在哪里?这看起来可能是Python 2与Python 3的问题,特别是关于输入
函数的行为。你认为我们可以得到你正在使用的完整脚本吗?看你用两个参数调用过程,但是这两个参数是从哪里提取的?例如,很多人这样调用这个def:output=addtwo(var1,var2)
这些变量设置在哪里?尽管原始帖子中缺少信息,但这并不是原始海报存在的问题。一个更有用的答案将解决OP引用的名称错误的可能原因。