我有一个函数可以处理整数。如果输入了字符串或浮点数,我添加了异常处理代码,但是Python不断返回废话或NameError
。在这一点上,我尝试了一个循环,不断询问,直到输入一个整数,然后输入try
和except
。什么都没有即使有异常处理,Python函数也会返回NameError
下面的代码:
def threes(num):
"""isNotCorrect = True
while isNotCorrect:
print(type(num))
if type(num) is not int:
print("Sorry, you need to enter a whole number to play Threes.")
else:
print('X')
isNotCorrect = False"""
try:
while num > 1:
if num % 3 == 0:
num = num/3
else:
if ((num + 1) % 3 == 0):
num = (num + 1)/3
else:
num = (num - 1)/3
print(num)
except NameError:
print("Invalid number. Please enter a valid number.")
输入一个整数(预期输入)的罚款执行的代码,但一切导致名称错误这样,该输入是threes(bob)
。最上面的部分是我的循环尝试,它也失败并返回相同的错误;
Traceback (most recent call last):
File "<input>", line 1, in <module>
NameError: name 'bob' is not defined
看来你还没有定义bob变量......你可以发布entiere代码吗? – Darkaird
当你打电话给'三分线(bob)'而'bob'没有在任何地方定义时,你期望什么? – Tomalak
该方法执行前引发异常('bob'不存在)。通过不输入方法,'try'' except'不被执行。另外,如果你想检查输入是一个数字,'Except'应该检查'TypeError',而不是'NameError'。 – AArias