我有一個函數可以處理整數。如果輸入了字符串或浮點數,我添加了異常處理代碼,但是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