脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - Python中else怎么用?else的用法总结

Python中else怎么用?else的用法总结

2023-02-11 11:25py_tester Python

这篇文章主要介绍了Python中else的用法总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

关于else的用法总结

本文讨论Python的for…else、while…else、try..except…else等语法

Python中的for、while是在循环体内没有break语句、没有return语句,或者没有异常出现时才执行else语句,try..except…else是在try中无异常产生时执行,注意不包括continue。

总的来说,是for、while、try语句中‘没毛病’时才执行,而在if..else语句中是if语句判断为假(有毛病)才执行else,这一点要区分开来

下面举例说明下while..else作用,字符串有s1.find(s2)方法,作用是在字符串s1中查找s2,若找到就返回其索引值,不存在返回-1,但是列表却没find方法,以下用while…else语句实现list_find方法:

Python中else怎么用?else的用法总结

或者模拟list.index()的实现:

Python中else怎么用?else的用法总结

最后关于try….except1..except2…else…finally的执行顺序:是try执行完没有任何问题(即各个except语句均没有捕获到异常)时,再去执行else语句,最后执行finally首尾工作,若执行过程中只要有except捕获到异常,就跳过else直接执行finally;

Python中else怎么用?else的用法总结

 

你不知道的else用法

if-else

无论在哪个语言,if-else基本上都是通用的分支选择结构了。这里就简单介绍一下。

if 3%2==1:
    print("if")
else:
    print("else")

if-else 满足if则进入if语块,否则进入else语块 if 和else 只有一个语块代码会被执行。

for-else

for-else搭配使用,我也只是在python的学习过程中碰到过。通过测试用例来比较一下。

fruits=["apple","orange","pear"]
for item in fruits:
    if item=="apple":
        print("apple")
else:
    print("for-else")

↓↓↓

apple
for-else

这里for循环正常执行结束,然后执行了else语块的代码。

fruits=["apple","orange","pear"]
for item in fruits:
    if item=="apple":
        print("break")
        break
else:
    print("for-else")

↓↓↓

break

当在for循环中执行break语句跳出循环时,else语块没有执行。

即for-else搭配使用时,for循环没有因为break语句跳出循环,则会执行else语句。

while-else

while-else与for-else类似,均为前面的循环正常结束时else语块会被执行。

i=5
while i>0:
    i=i-1
else:
    print("while-else")

↓↓↓

while-else

while语句正常执行,当while条件为false时结束while循环,进入else语块。

i=5
while i>0:
    i=i-1
    if i==3:
        print("break")
        break
else:
    print("while-else")

↓↓↓

break

while语句因为break语句跳出循环,else语块没有被执行。

while-else搭配使用时,while循环没有因为break语句跳出循环,则会执行else语句

备注:上述例子的break不一定非得是break,只要能跳出当前循环的语句都会跳出else语块。else如果还有其他用法,请在下方留言一起学习。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/py_tester/article/details/78336226

延伸 · 阅读

精彩推荐