Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否可以捕获错误并执行代码,而不使用Try only或带有条件?_Python_Exception_Conditional Statements - Fatal编程技术网

Python 是否可以捕获错误并执行代码,而不使用Try only或带有条件?

Python 是否可以捕获错误并执行代码,而不使用Try only或带有条件?,python,exception,conditional-statements,Python,Exception,Conditional Statements,我想知道我们是否可以完全在try部分执行代码,而不使用else。 显然,它是有效的。以下是一个例子: x = int(input()) try: print(10/x) print("Possible") except ZeroDivisionError as e: print(e) 或者我们可以这样做,这是最常用的语法: x = int(input()) try: print(10/x) except ZeroDivisionError as e: print(e)

我想知道我们是否可以完全在
try
部分执行代码,而不使用
else
。 显然,它是有效的。以下是一个例子:

x = int(input())
try:
  print(10/x)
  print("Possible")

except ZeroDivisionError as e:
 print(e)
或者我们可以这样做,这是最常用的语法:

x = int(input())
try:
  print(10/x)

except ZeroDivisionError as e:
  print(e)

else:
  print("Possible")
在这种情况下,我们甚至可以使用一个条件:

x = int(input())

if x !=0:
  print(10/x)
  print("possible")

elif x ==0 :
  print("Error!")

那么这三者之间的区别是什么呢?应该使用哪一种?这三种方法似乎都能捕捉并防止错误。

可能是第一种。原因如下。当您使用
try except
块时,您可以控制异常,并且可以显示自定义消息以及堆栈跟踪。第二个不是很可读,而且有点冗余(毕竟,如果一切顺利,为什么要显示任何消息!),第三个没有显示错误发生的位置和方式。如果这不是你关心的问题,那么任何一个都可以。可能是第一个。原因如下。当您使用
try except
块时,您可以控制异常,并且可以显示自定义消息以及堆栈跟踪。第二个不是很可读,而且有点冗余(毕竟,如果一切顺利,为什么要显示任何消息!),第三个没有显示错误发生的位置和方式。如果这不是您所关心的,那么其中任何一个都可以正常工作。

最好使用try-except,因为您可能无法始终掌握所有错误。例如,如果用户输入一个“字符串”,您仍然会得到一个错误


您还可以使用“except”命令捕获所需的错误。您可以看到错误所在。

如果使用“尝试除外”效果更好,因为您可能无法始终掌握所有错误。例如,如果用户输入一个“字符串”,您仍然会得到一个错误


您还可以使用“except”命令捕获所需的错误。您可以看到错误所在。

如果输入在
中,请尝试
,我想打印除法结果,如
打印(10/x)
,这个打印语句应该在try内部还是在其他内部?不。如果你不在,它最好不在那里;我不想捕捉输入中的任何错误
try except
block仅获取要对其执行错误处理的代码部分。在这里,您不希望处理用户输入内容时发生的任何错误,因此它不应该进入try except块OK然后,假设我们在块外输入内容,并在
try
内部定义一个变量,如
result=10/x
。现在,如果我想打印
result
打印语句应该在哪里?在
try
(将
result=10/x与
result=10/x一起,或分别放在
中,否则
?这两种方法似乎都有效。如果输入在
try
中,而我想像
print(10/x)一样打印除法结果,该怎么办
?,此打印语句应该在try内部还是在else内部?不。如果您不想捕获输入中的任何错误,它最好不在那里。
try except
block只处理您想处理错误的代码部分。在这里,您不想处理用户输入内容时发生的任何错误,因此我们不应该进入try except块OK,假设我们在块外有输入,我们在
try
内定义了一个变量,如
result=10/x
现在如果我想打印
result
打印语句应该在哪里?Whithin
try
(将
result=10/x与
else组合使用,或将
单独放入
else
?两种方法似乎都有效。