我是python初学者,在使用try时,我对一个程序有疑问。除了部分I尝试从用户输入并将数字加1,如果您输入5,则将打印6,但如果您输入字符串,则将打印6,但如果您输入字符串,则除了在角色中输入和打印外,仅输入数字我已经编写了代码,但除了在那里不起作用外,代码是否正常工作,如果我输入5,则打印6,但除了语句不起作用
下面是我写的代码
def increment(num):
try:
return num + 1
except Exception as e:
print("ufff error occured :", e)
n = int(input("enter your num: "))
a = increment(n)
print(a)发布于 2021-02-07 00:33:05
您必须更改为以下内容:
def increment(num):
try:
return int(num) + 1
except Exception as e:
print("ufff error occured :", e)
n = input("enter your num: ")
a = increment(n)
print(a)原因是int()函数引发了异常,因为它不能将您的输入转换为int。对int()的调用在增量函数之前。因此,该异常未被处理。
发布于 2021-02-07 00:33:13
在进入try/except块之前,您尝试将输入转换为int。如果你只是把它放在try块中,它就会工作。
def increment(num):
try:
num = int(num)
return num + 1
except Exception as e:
print("ufff error occured :", e)
n = input("enter your num: ")
a = increment(n)
print(a)发布于 2021-02-07 00:34:12
我可以推荐以下内容吗?
def increment(num):
try:
return int(num) + 1
except Exception as e:
print("ufff error occurred:", e)
n = input("enter your num: ")
a = increment(n)
print(a)这里唯一的区别是,将用户输入转换为int的尝试发生在try-except块内部,而不是外部。这允许捕获类型转换错误和您的消息("ufff error occurred:...")要显示的。
编辑:关于您的评论:
是的,谢谢大家,但谁能告诉我,如果我在输入行中使用int,我应该做什么,我需要做哪些更改
或者,您可以执行以下操作:
def increment(num):
return num + 1
try:
n = int(input("enter your num: "))
a = increment(n)
print(a)
except Exception as e:
print("ufff error occurred:", e)在这种情况下,我建议删除increment函数中的try-except块,因为您可以安全地假设传递给该函数的所有值都是数值。
https://stackoverflow.com/questions/66079140
复制相似问题