当前位置: 首页 > news >正文

Python从入门到高手4.2节-掌握循环控制语句

目录

4.2.1 理解循环控制

4.2.2 for循环结构

4.2.3 循环结构的else语句

4.2.4 while循环结构

4.2.5 循环结构可以嵌套

4.2.6 国庆节吃好玩好


4.2.1 理解循环控制

我们先来搞清楚循环的含义。以下内容引自汉语词典:

循环意指往复回旋,指事物周而复始地运动或变化,或反复地连续做某事

那么,放到编程语言中进行类比,则很容易理解循环控制: 通过某些指令来控制程序反复地执行。通过控制程序指令反复地执行,可将程序员从繁琐的代码编写工作中解放出来。同学们先思考下面这个问题:

计算1到10之间的所有自然数的和

乍看是一个很简单的问题,要解决这个问题,只需将1到10之间的所有自然数罗列出来,然后再直接相加即可:

sum = 1+2+3+4+5+6+7+8+9+10

但如果把问题改成“计算1到100000之间的所有自然数的和”,该怎么编写程序代码?通过手写的方式,逐数字的进行相加是非常低效的。对于这类问题,编程语言中的循环控制可以提供完美的解决方案。

4.2.2 for循环结构

在Python中通过for与while关键字来定义循环结构,循环结构中的else语句用来定义循环正常退出时所执行的操作。

同学们可以在交互模式中查找for,while等关键字的定义与用法,要养成在交互模式中进行查找的良好习惯。例如查找for关键字的定义及用法:help("for")。

for循环的语法结构:

for target_list in expression_list:pass
else:pass

target_list表示目标值列表,expression_list表示表达式列表,循环中的else语句用来定义循环正常退出时所执行的操作。在for循环结构中,会逐一迭代出表达式列表中的值,然后将值赋值给target_list所代表的变量。

代码实例:

for number in 1,2,3,4,5:print(number)"""
程序输出为:1
2
3
4
5
"""

代码中的for循环会迭代表达式列表中的值,然后将迭代出的值赋值给变量number。表达式列表中的值为(1,2,3,4,5), 集合中有5个值,所以for循环一共迭代了5次,每次都将迭代得到的值赋值给了变量number。比如第一次迭代出的值为1,然后赋值给变量number,第二次迭代出的值为2,同样赋值给变量number,以此类推。

以逗号分隔的表达式其实是Python中的元组,在后面介绍数据类型时,会对元组类型进行详细讲解

4.2.3 循环结构的else语句

循环中的else语句不是必须的,如需定义循环正常退出时所执行的收尾操作,那么需要在for循环结构中加一个else语句。

for number in 1,2,3,4,5:print(number)
else:print("for循环正常退出")"""
程序输出为:1
2
3
4
5
for循环正常退出
"""

所谓的循环非正常退出,是指在循环中执行了break语句,也即,只要在循环体中执行了break, 就是循环的非正常退出。

break语句只能用于循环结构中,如果用在其它的地方,Python会抛出语法错误的异常信息。

代码实例:

for number in 1,2,3,4,5:print(number)# 如果当前number指向的值大于3,就执行break退出循环 if number > 3:break
else:# 如果for循环非正常退出# 就不会执行else语句下面的代码print("for循环正常退出")"""
程序输出为:
1
2
3
4
"""

4.2.4 while循环结构

先来看下while循环的语法结构:

while expression:pass
else:pass

expression为条件表达式,当表达式的值为真值时,会执行冒号下方的代码。while中的else同for循环中的else一样,用来定义循环正常退出时所执行的操作。在while循环中同样可以执行break来退出循环。

代码实例:

while 0:print("这行代码永远不会执行")
while "":print("这行代码永远不会执行")

while中的表达式为0,  0值为假值,所以不会执行while循环中的print函数。

在迄今学过的内容中,0值和空值都为假值。空字符串是空值,自然也是假值

代码实例:

x = 3
y = 3
while x+y > 0:# 先取出变量x指向的值,然后与1进行相减# 最后将相减的值再赋值给变量x,以此实现了自减x = x-1y = y-1print("x+y=", x+y)"""
程序输出为:x+y=4
x+y=2
x+y=0
"""

代码讲解:

x与y的初始值都为3,x+y的值为6,所以x+y > 0的值为真值。在while循环中不断将x与y的值减-1,当x与y的值都为0时,x+y=0,那么表达式x+y > 0的值为假值,所以不会运行循环体中的代码。

4.2.5 循环结构可以嵌套

循环结构同条件控制结构一样,也可以嵌套。同样地,在进行嵌套时要注意代码缩进,同时嵌套的深度不宜过深,否则会导致代码的可读性变差,代码难以维护。以下是一个代码实例, 计算1到10之间的所有合数的和:

# 定义变量sum_of_numbers用来保存所有合数的和
sum_of_numbers = 0
# 合数指自然数中除了能被1和本身整除外,还能被其他数(0除外)整除的数
# 所以首先排除1和2
number = 3while number <=10:# 通过for循环和range来遍历从2到number之间的所有自然数for _ in range(2, number):# % 是Python中的求余计算符号if number % _ == 0:# number能被其他数整除时,余数为0# 如果余数为0,说明为合数sum_of_numbers = sum_of_numbers + numberbreak    # 不断进行自加,当number指向的值大于10时,会退出循环number = number +1
else:print(sum_of_numbers)

在上文的代码实例中,在while循环中嵌套了for循环,同样可以在while中嵌套while循环,在for循环中嵌套while循环,for循环。同学们可将上文中的代码实例全部改成for循环结构,以比较while循环与for循环的使用区别。

4.2.6 国庆节吃好玩好

跟薯条老师学后端开发,高级爬虫(JS逆向+安卓逆向),数据分析,大数据开发,量化交易,以及机器学习+深度学习算法。坚定自己的学习目标,保持学习的热情,那你成为高手只是时间问题。

薯条老师的学生在南方电网,林氏家居,京东,阿里等大厂。想系统学习Python和Java的同学,可以移步薯条老师的个人技术博客:薯条老师的个人技术博客icon-default.png?t=O83Ahttp://www.chipscoco.com/ 对本节教程有任何不懂的同学,亦可在评论区中进行评论。薯条老师会详细解答你们提出的每一个问题。

 

http://www.lryc.cn/news/451623.html

相关文章:

  • CSS 中的overscroll-behavior属性
  • GPT对话知识库——在STM32的平台下,通过SPI读取和写入Flash的步骤。
  • Pytorch基本知识
  • vue3使用Teleport 控制台报警告:Invalid Teleport target on mount: null (object)
  • 使用产品前的环境搭建
  • JAVA基础语法 day07
  • ZLMediaKit编译运行
  • AlmaLinux 9 安装mysql8.0.38
  • NLP任务之文本分类(情感分析)
  • MIMO 2T4R BBU RHUB AAU
  • 图说数集相等定义表明“R各元x的对应x+0.0001的全体=R“是几百年重大错误
  • 只出现一次的数字|||(考察点为位操作符)
  • PMP--三模--解题--81-90
  • 脚本自动化创建AWS EC2实例+安装ElasticSearch和Kibana+集成OpenTelemetry监控
  • 【设计模式-命令】
  • 【API安全】crAPI靶场全解
  • HCIP-HarmonyOS Application Developer 习题(四)
  • 【Python报错已解决】TypeError: ‘int‘ object is not subscriptable
  • 《OpenCV》—— 指纹验证
  • HBase 性能优化的高频面试题及答案
  • excel不经过后台实现解析和预览(vue)
  • html5 + css3(上)
  • Flask+微信小程序实现Login+Profile
  • 后缀表达式中缀表达式转后缀表达式
  • Qemu开发ARM篇-7、uboot以及系统网络连接及配置
  • 两数相加leetcode
  • C0004.Qt中QComboBox设置下拉列表样式后,下拉列表样式无效的解决办法
  • AI 对话工具汇总
  • 面试题05.08绘制直线问题详解(考察点为位运算符)
  • 埃及 Explained