值得收藏!16段代码入门Python循环语句

导读:本文重点讲述for语句和while语句 。for语句属于遍历循环,while语句属于当型循环 。除了两个循环语句外,还介绍了break、continue与pass三个用于控制循环结构中的程序流向的语句 。在此基础之上,还介绍了列表推导式,这是一种特殊的循环语句 。
作者:李明江 张良均 周东平 张尚佳
如需转载请联系华章科技
值得收藏!16段代码入门Python循环语句

文章插图
 
循环语句又称为重复结构,用于反复执行某一操作 。面对大数量级的重复运算,即使借助计算机,重复编写代码也是费时的,这时就需要借助循环语句 。使用循环语句一般要用到条件判断,根据判断式的返回值决定是否执行循环体 。
循环分为两种模式,一种是条件满足时执行循环体;另一种则相反,在条件不满足时执行循环体 。前者称为当型循环,后者称为直到型循环 。
在图1中,虚线框内是一个当型循环结构,此结构包含判断条件和循环体,以及连接各部分的流向线 。程序执行时,先判断条件的真假 。判断为真时,则执行循环体;判断为假时,不再执行循环体,循环结束 。当型循环先进行条件判断,如果满足循环条件,再执行循环体,因此又被称为前测试型循环 。
值得收藏!16段代码入门Python循环语句

文章插图
▲图1 当型循环结构
在图2中,虚线框内是一个直到型循环结构,此结构包括判断条件和循环体,以及连接各部分的流向线 。程序执行时,先执行一次循环体,再判断执行循环的结果是否满足判断条件 。满足条件时,再次执行循环体;不满足条件时,不再执行循环体 。直到型循环在执行判断前先进入循环体运行,因此又被称为后测试型循环 。
值得收藏!16段代码入门Python循环语句

文章插图
▲图2 直到型循环结构
Python中主要有两种循环语句,即for语句和while语句 。前者采用遍历的形式指定循环范围,后者视判断式返回值的情况而决定是否执行 。要更灵活地操纵循环的流向,就要用到break、continue和pass等语句 。
01 forfor循环是迭代循环,在Python中相当于一个通用的序列迭代器,可以遍历任何有序序列,如str、list、tuple等,也可以遍历任何可迭代对象,如dict 。不同于C语言,Python中的for语句将遍历系列中的所有成员,遍历顺序为成员在系列中的顺序 。需要注意,在for循环中改变任何序列的内容都是危险的!
for语句不属于当型循环或直到型循环,它遍历序列对象内的元素,对每个元素运行一次循环体,循环的步数在程序开始执行时已经指定,不属于条件判断 。
在for语句中,for和in搭配组成for-in循环结构,for-in循环依次把list或tuple中的每个元素迭代出来 。for语句的基本语法格式如下 。
for 变量 in 序列: 操作语句for语句常用的语法格式及其参数说明如下所示:
  • 序列:接收序列,表示遍历范围 。无默认值
  • 操作语句:接收操作语句,表示执行一段代码 。无默认值
程序的执行从“for变量in序列”开始,该语句把序列中的每个元素代入变量,执行一遍操作语句1,重复的次数就是序列中元素的个数 。
为了展示for循环的遍历功能,依次打印list中的姓名,如代码清单1所示 。
  • 代码清单1:for语句遍历提取str
# 单纯遍历的for语句names = ['Michael', 'Bob', 'Tracy']# 遍历输出names中的元素for name in names: print(name) 【值得收藏!16段代码入门Python循环语句】输出结果:
MichaelBobTracy for语句同样可以实现dict的遍历方法,如代码清单2所示 。
  • 代码清单2:for语句遍历查询dict
dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}# 遍历键值对print('key_value:', end = '')for key, value in dic.items(): print(key, value, sep = ':', end = ' ')# 遍历键print('keys:', end = '')for key in dic.keys(): print(key, end = ' ')# 遍历值print('values:', end = '')for value in dic.values(): print(value, end = ' ') 输出结果:
key_value:a:1 b:2 c:3 d:4keys:a b c dvalues:1 2 3 4 从代码清单2可以看到,for语句中用于遍历的“变量”不仅可以是Python默认的指代词,也可以是常规的变量 。
和条件语句一样,循环语句也可以使用嵌套,作用同样是丰富程序的功能性 。设计一个成绩录入系统,就必然要录入姓名和课程这两类信息,仅靠一层循环是无法实现的,可使用两层循环结构,如代码清单3所示 。


推荐阅读