因此,基本上,如果不满足条件的话,else块只会工作,所以它是必要的。在for-else耦合和while-else耦合中,当由于某种原因无法执行循环时,它将执行。所以,我们不能通过尝试-来实现我们无法完成的任务.我的意思是,如果目的是检测是否引发异常,我们可以简单地在try块的末尾添加print语句来实现它。在尝试-除了-其他耦合中,其他因素的重要作用是什么?(大家好!我对编程和StackOverflow也非常陌生。但是我试着把这个问题和网站的礼仪尽可能地同步起来)
发布于 2020-06-13 14:06:13
在python中没有其他东西可以耦合。上面提到的所有构造,再加上else,都可以很好地工作,甚至不需要使用else。您可以使用if、for、while和try-except而不用else。但是,else在python中的作用是:执行代码,而不是在之上的块中执行代码。
请注意,与else无关的是,哪个块在它上面,或者它与谁耦合。只有当上面的块没有执行时,才会执行。由此产生的障碍可能是重要的,也可能不是重要的,或者是通过其他手段无法实现的。
发布于 2020-06-13 14:18:20
所以,我们不能通过尝试-来实现我们无法完成的任务.
考虑一下
try:
a()
except Exception:
b()
else:
c()一个。
try:
a()
c()
except Exception:
b()但是,如果b()引发Exception,这将捕获并运行Exception。我相信这可能就是你所想的。
B.
try:
a()
except Exception:
b()
c()但这可能会在a()引发Exception时运行Exception。
结果表明,C.
success = False
try:
a()
success = True
except Exception:
b()
if success:
c()这在功能上是等价的,但更冗长,也不那么清晰。(我们甚至没有包括一个finally块。)
尝试
发布于 2020-06-13 14:15:36
如果在try块中没有发现错误,那么else块也会被执行,但是当一个错误被缓存时,除了块将被执行。
因此,如果您有一个方法,例如,可以抛出一个IOError,并且希望捕获它引发的异常,但是如果尝试块中的第一个操作(即代码)成功了,并且您不想从该操作中捕获一个IOError,那么在这种情况下将使用else块。
try:
statements # statements that can raise exceptions
except:
statements # statements that will be executed to handle exceptions
else:
statements # statements that will be executed if there is no exception考虑一下这个例子:
try:
age=int(input('Enter your age: '))
except:
print ('You have entered an invalid value.')
else:
if age <= 21:
print('You are not allowed to enter, you are too young.')
else:
print('Welcome, you are old enough.')虽然使用else没有适当的意义,因为每次没有异常时,我们也可以在try块中完成任务。
希望这能帮上忙!
https://stackoverflow.com/questions/62360862
复制相似问题