Python 3.x 如何修复自己定义的函数中出现的NameError?

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将无法解决(因为您

我正在尝试做一个简单的数学函数,它将两个变量相加。然而,如果在函数中输入字符串,一切都会变得疯狂。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将无法解决(因为您没有共享该部分)。但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引用的名称错误的可能原因。