Python中的else用哪些鲜为人知的用法
Admin 2022-08-26 群英技术资讯 492 次浏览
本文讨论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方法:
或者模拟list.index()的实现:
最后关于try….except1..except2…else…finally的执行顺序:是try执行完没有任何问题(即各个except语句均没有捕获到异常)时,再去执行else语句,最后执行finally首尾工作,若执行过程中只要有except捕获到异常,就跳过else直接执行finally;
无论在哪个语言,if-else基本上都是通用的分支选择结构了。这里就简单介绍一下。
if 3%2==1: print("if") else: print("else")
if-else 满足if则进入if语块,否则进入else语块 if 和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与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如果还有其他用法,请在下方留言一起学习。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Python实现五子棋人机对战 和人人对战,通过定义黑白子,落子位置以及获胜规则展开详细内容,需要的小伙伴可以参考一下
这篇文章主要介绍了使用Python怎样对pandas数据合并的操作,对大家学习Python具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章能有所收获,接下来小编带着大家一起了解看看。
tfrecord是tensorflow中常用的数据打包格式,这篇文章给大家介绍的就是关于tfrecord文件的生成和读取,本文有具体以及步骤,具有的一定的参考价值,需要的朋友可以参考学习。
今天给大家总结一下字符串的所有操作,string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等去空格及特殊符号s stri
2020.3.7准备scrapy,使用anaconda创建一个新的环境,执行“conda create -n scrapyEnv python=3.6”,结果出现了“CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/current_repodata.json>”。以下是我的解决步骤。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008