我正在尝试做一个简单的数学函数,它将总结两个变量。但是,如果在函数中输入字符串,一切都会变得疯狂。尝试/由于某种原因无法正常工作:
def addtwo(a,b):
if int(a) and int(b):
added=a+b
else:
added=print("Insert a number!")
return added
答案 0 :(得分:0)
在设置变量之前调用变量会引发NameErrors。这意味着您的a
和b
变量可能设置不正确。
https://airbrake.io/blog/python-exception-handling/python-nameerror
在函数中输入一个字符串将导致无效的文字,这是一个完全不同的问题。可以使用try
和except
来解决。
答案 1 :(得分:-1)
由于此功能,不会出现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!
在您的代码中,if int(a) and int(b):
在检查整数值时出现问题。它将给出此错误ValueError: invalid literal for int() with base 10: 'str'
。因此,请使用isinstance
而不是int
。而且added=print("Insert a number!")
也是完全错误的。