python else语句在循环中的运用详解


Posted in Python onJuly 06, 2020

在学习python循环语句的时候,发现else竟然可以和循环语句使用,但是它却与if中else语句的运行完全不同,有时候你真的感觉掉进这个else陷阱里了,完全不知道该怎么用,那么现在咱们一起去看看吧

一、循环_else示例

1、while_else的运用

# 定义外循环计数器
i = 1
# 循环1-10每个数字
while i <= 10:
  # 定义内循环计数器
  j = 1
  # 循环1-5每个数字,或者说循环5次
  while j <= 5:
    # 判断1-10之间的数/2是否有余数
    if i % 2 == 0:
      # 没有余数那么就跳出内循环,继续外循环
      break
    # 修改内循环计数器
    j += 1
  # 当循环正常结束的时候执行else
  else:
    print("小于")
  i += 1

输出结果:
小于
小于
小于
小于
小于

(1)分析:为什么会输出5个小于?

​1、首先,要知道的是,break距离哪个循环最近,那么就作用于哪个循环,上边的是在内循环中,那么就作用于内循环。其次,内循环在外循环中,那么内循环对于外循环来说就是一条语句。python语言尤其注意于代码格式,将外循环中将内循环看作未一条语句,那么问题就非常简单了。

2、其次else与那个循环对齐,那么这个else就属于那个循环,当这个循环正常结束后就会执行else中的语句,否则遇到break就会提前跳出循环,那么就将无法执行else中的语句

​3、看代码,外循环要循环10次,内循环要循环5次,也就就是说外循环1次,内循环就要循环5次。在内循环中有一个条件,当 i % 2 == 0,那么就跳出循环,1-10之间能被2整除的就是偶数字,那么当i=2,4,6,8,10这5种情况的时候,就会跳出内循环,此刻else是不会执行,那么执行的5次else是i=奇数的时候,条件不成立,所以会正常结束内循环,最后执行else中的语句。那么就也是说当while循环正常结束的时候才会执行else语句,若被break则将无法执行

(2)分析:将内循环计数器改为j = 6为什么会输出10个小于?

由于内循环条件不成立,无法进入循环体,也就无法循环,所以将无条件执行else中的语句,那么也就是说当条件不成立时,就会无条件执行else中的语句

2、if_else的运用

# 循环10次,拿到1-10之间的数字
for i in range(1,11):
  # 循环5次,拿到1-5之间的数字
  for j in range(1,6):
    # 判断 i的值是否能被2整除
    if i % 2 == 0:
      # 如果是,则跳出内循环
      break
  # 当循环正常结束则执行else语句
  else:
    print("大于")

输出结果:
大于
大于
大于
大于
大于

(1)分析:为什么会输出5个大于?

首先要知道,不管是while循环还是for循环,使用else都是一样的道理,当循环正常结束才会执行else,否则将不会执行else语句。

外循环循环10次,内循环5次,外循环1次,内循环5次。当内循环条件成立执行break,将跳出内循环执行外循环,当条件不成立就相当于没有这个条件,而直接执行else语句。那么也就是说,当循环遇到break就会跳出循环而不执行else,若未遇到则表明循环正常结束,要去执行else语句。

for i in range(1,11):
  for j in range(1,1):
    if i % 2 == 0:
      break
  else:
    print("大于")

(2)分析:为什么会输出10个大于?

同的道理,由于range(1,1)表明没有循环次数,那么for循环就无法执行,所以会去执行else语句。也就是说,当循环未能执行的时候,则会去执行else语句。

3、while循环与for循环的适用场景?

while循环 当对循环次数未知的时候,使用while循环再合适不过。当然也可以应用于循环次数已知的情况,但是有时会使代码量增多
for循环 当对循环次数已知的情况下使用for循环,并且在迭代列表、元组、字符串和字典的时候for循环显得及其优美,也可以说for循环是为迭代元素量身定制的

二、总结

不管是while循环也好还是for循环也好,当与else一起使用的时候都是一样的道理。当循环正常结束的时候,就会去执行else语句,若碰到break而提前结束,将不会执行else;当循环未能执行的时候,会自动执行else语句

到此这篇关于python else语句在循环中的运用详解的文章就介绍到这了,更多相关python else循环运用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木! 

Python 相关文章推荐
Python中的作用域规则详解
Jan 30 Python
wxPython的安装与使用教程
Aug 31 Python
pip安装py_zipkin时提示的SSL问题对应
Dec 29 Python
记录Python脚本的运行日志的方法
Jun 05 Python
Spring Cloud Feign高级应用实例详解
Dec 10 Python
Pytorch中Tensor与各种图像格式的相互转化详解
Dec 26 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
Feb 26 Python
Python标准库json模块和pickle模块使用详解
Mar 10 Python
详解pandas.DataFrame.plot() 画图函数
Jun 14 Python
Python实现爬取并分析电商评论
Jun 19 Python
pyqt5实现井字棋的示例代码
Dec 07 Python
将Python代码打包成.exe可执行文件的完整步骤
May 12 Python
Keras模型转成tensorflow的.pb操作
Jul 06 #Python
python如何进入交互模式
Jul 06 #Python
python3.4中清屏的处理方法
Jul 06 #Python
Python3基于print打印带颜色字符串
Jul 06 #Python
python判断是空的实例分享
Jul 06 #Python
python三引号如何输入
Jul 06 #Python
如何验证python安装成功
Jul 06 #Python
You might like
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
2011/09/19 PHP
php中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
跟我学Laravel之请求与输入
2014/10/15 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
2016/10/10 PHP
php递归函数怎么用才有效
2018/02/24 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
js自带函数备忘 数组
2006/12/29 Javascript
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
Javascript base64编码实现代码
2011/12/02 Javascript
js渐变显示渐变消失示例代码
2013/08/01 Javascript
JQuery each()嵌套使用小结
2014/04/18 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
js实现无缝滚动特效
2015/12/20 Javascript
基于JavaScript实现表单密码的隐藏和显示出来
2016/03/02 Javascript
Jquery鼠标放上去显示全名的实现方法
2017/02/06 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
DatePickerDialog 自定义样式及使用全解
2019/07/09 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
2019/09/26 Javascript
使用pkg打包ThinkJS项目的方法步骤
2019/12/30 Javascript
使用python将mdb数据库文件导入postgresql数据库示例
2014/02/17 Python
python中hashlib模块用法示例
2017/10/30 Python
Python socket 套接字实现通信详解
2019/08/27 Python
详解Django CAS 解决方案
2019/10/30 Python
Django实现将views.py中的数据传递到前端html页面,并展示
2020/03/16 Python
Numpy 理解ndarray对象的示例代码
2020/04/03 Python
用python写PDF转换器的实现
2020/10/29 Python
CSS3 渐变(Gradients)之CSS3 径向渐变
2016/07/08 HTML / CSS
澳大利亚领先的孕妇服装品牌:Mamaway
2018/08/14 全球购物
C++:memset ,memcpy和strcpy的根本区别
2013/04/27 面试题
介绍一下.net和Java的特点和区别
2012/09/26 面试题
市政施工员自我鉴定
2014/01/15 职场文书
小学三八妇女节活动方案
2014/03/16 职场文书
幼儿园三八妇女节活动总结
2015/02/06 职场文书
学风建设主题班会
2015/08/17 职场文书
合同范本之电脑出租
2019/08/13 职场文书
导游词之南昌滕王阁
2019/11/29 职场文书