【发布时间】:2020-08-19 05:43:18
【问题描述】:
我正在编写一个只能使用 def() 的代码。 input() 不能在 def() 中使用。当传递一个数值时,就可以了。当提供字符串(例如,5、10 等)时,它返回 NameError。如何使用 try 和 except 解决此问题。
def num(n):
try:
return int(n)
except NameError:
print('Error: Enter numeric nalue')
return
num(Five)
输出:NameError: name 'Five' is not defined
我正在使用 Anaconda 2020.2(Python3.7.6 64 位)
【问题讨论】:
-
您几乎肯定没有使用 Python 3.7,您的代码不会抛出该错误,而是您使用的是 Python 2 的某个版本,它会。你真的应该使用 Python 3
-
num(Five)这意味着您正在传递变量名称Five它应该看起来像这样var=input('Enter the input')num(var) -
我已经安装了 Anaconda 2020.2,这表明它在我的控制面板中安装的程序中有 Python3.7.6。如何检查它是否是Python2。我正在使用 Windows 7。
-
@user13966865 但我不允许使用 input()
-
你传入的是变量 Five 而不是字符串“Five”。如果你想测试一个字符串的用户输入,你应该尝试 / 除了 ValueError 而不是 NameError,并将函数作为 num(“Five”) 运行,因为用户输入将是一个字符串。
标签: python nameerror try-except