Python ValueError与Except语句仍然存在
我正在尝试创建一个程序来探索collatz序列。直到我尝试添加Python ValueError与Except语句仍然存在,python,except,Python,Except,我正在尝试创建一个程序来探索collatz序列。直到我尝试添加try和except语句,以确保用户输入的是数字而不是文本,它才起作用。代码如下: def collatz(number): try: if number % 2 == 0: print(number // 2) return number // 2 elif number % 2 == 1: result = 3 * nu
try
和except
语句,以确保用户输入的是数字而不是文本,它才起作用。代码如下:
def collatz(number):
try:
if number % 2 == 0:
print(number // 2)
return number // 2
elif number % 2 == 1:
result = 3 * number + 1
print(result)
return result
except ValueError:
print('That is not a number')
print('Enter a number')
n = int(input())
while n != 1:
n = collatz(int(n))
如果我输入数字,我可以毫无问题地运行它。然而,当我输入单词“puppy”时,我会遇到以下情况:
回溯(最近一次呼叫最后一次):
文件“C:/Users/kredeker/Desktop/python/collatz2.py”,第14行,在
n=int(输入())
ValueError:以10为基数的int()的文本无效:“puppy”
我以为我是在用这个来解释ValueError
:
except ValueError:
print('That is not a number')
您在
n=int(input())
处收到错误
所以试着去做吧
try:
n = int(input())
except ValueError:
print('That is not a number')
完整的代码(这样您就不会出现“n”错误):
您在
n=int(input())
处收到错误
所以试着去做吧
try:
n = int(input())
except ValueError:
print('That is not a number')
完整的代码(这样您就不会出现“n”错误):
try…except
仅适用于在这些字之间运行的代码,包括函数调用。正如回溯所示,您的异常发生在第14行:
n = int(input()) # <---
n=int(input())#try…except
仅适用于在这些字之间运行的代码,包括函数调用。正如回溯所示,您的异常发生在第14行:
n = int(input()) # <---
n=int(input())#异常处理在函数中完成n=int(input())
不在函数范围内。您可以删除int调用n=input()
异常处理在函数中完成n=int(input())
不在函数范围内。您可以删除int调用n=input()
函数中的collatz()
任何代码都不会抛出ValueError
异常,不需要保留try…除了该函数中的。您对int()
的调用仍然是多余的:n=collatz(n)
就可以了。collatz()
函数中的任何代码都不会抛出ValueError
异常,除了该函数中的之外,没有必要保留try.。您对int()
仍有多余的调用:n=collatz(n)
就可以了。