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代码
Mar 13 Python
Python发送Email方法实例
Aug 21 Python
TensorFlow模型保存/载入的两种方法
Mar 08 Python
关于python之字典的嵌套,递归调用方法
Jan 21 Python
python实现PID算法及测试的例子
Aug 08 Python
python是否适合网页编程详解
Oct 04 Python
Win10下python 2.7与python 3.7双环境安装教程图解
Oct 12 Python
python调用c++返回带成员指针的类指针实例
Dec 12 Python
使用Tensorflow实现可视化中间层和卷积层
Jan 24 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
Mar 30 Python
用python对excel进行操作(读,写,修改)
Dec 25 Python
Python实现疫情地图可视化
Feb 05 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
2014最热门的24个php类库汇总
2014/12/18 PHP
PHP curl使用实例
2015/07/02 PHP
php实现XSS安全过滤的方法
2015/07/29 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
2016/05/18 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
vue.js中指令Directives详解
2017/03/20 Javascript
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
原生js封装运动框架的示例讲解
2017/10/01 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
基于Three.js实现360度全景图片
2018/12/30 Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
2020/07/28 Javascript
Python格式化压缩后的JS文件的方法
2015/03/05 Python
Python 中 Meta Classes详解
2016/02/13 Python
Python实现针对中文排序的方法
2017/05/09 Python
Python读写docx文件的方法
2018/05/08 Python
Django中反向生成models.py的实例讲解
2018/05/30 Python
numpy.std() 计算矩阵标准差的方法
2018/07/11 Python
Python爬虫框架Scrapy基本用法入门教程
2018/07/26 Python
python实现移位加密和解密
2019/03/22 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
基于python实现蓝牙通信代码实例
2019/11/19 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
2020/01/07 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
详细的大学生创业计划书模板
2014/01/27 职场文书
演讲主持词
2014/03/18 职场文书
捐献物资倡议书范文
2014/05/19 职场文书
党的群众路线教育实践活动对照检查材料(个人)
2014/09/24 职场文书
教导主任个人总结
2015/03/03 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书
股东出资协议书
2016/03/21 职场文书
七年级上册生物的课件
2019/08/07 职场文书
适合青年人白手起家的创业项目分享
2019/08/16 职场文书
解决使用了nginx获取IP地址都是127.0.0.1 的问题
2021/09/25 Servers
springboot中rabbitmq实现消息可靠性机制详解
2021/09/25 Java/Android
Python实现双向链表基本操作
2022/05/25 Python
CSS控制继承中的height能变为可继承吗
2022/06/10 HTML / CSS