python的for循环语句_Python的range函数与for循环语句

本篇介绍Python for循环语句和range函数的使用,文中主要讨论for循环语句,Python的for循环语句类似于shell或是脚本语言中的foreach循环,可以迭代序列对象。使用range函数可以让Python的for循环提供类似于传统的for循环功能。通过本篇的学习,可以达成如下目标。

● 使用for循环语句迭代序列对象

● 掌握range函数的使用方法

Python提供的另外一个循环结构就是for循环语句,Python提供的for循环语句和Java、C++等编程语言提供的for语句不同,Python中的for循环更像是shell或是脚本语言中的foreach循环。它可以遍历如列表、元组、字符串等序列成员(列表、元组、字符串也称为序列),也可以用在列表解析和生成器表达式中。

1、 使用序列项迭代序列对象

通过for循环可以迭代序列对象的所有成员,并在迭代结束后,自动结束循环,其语法如下:

for iter_var in list:

语句块;

其中,iter_var是迭代变量,指向序列对象的元素,list是可迭代对象。语句块是循环体,在循环体中可以使用iter_var访问可迭代对象的元素。

例1:使用Pyhton列表建立一个同学花名册,使用for循环迭代输出花名册内容。

程序初始化一个Python列表,列表中存储姓名,然后使用for循环语句遍历Python列表,获取列表中的每个元素并输出。程序流程图如下:

u=2301091247,1922931565&fm=173&app=49&f=JPEG?w=430&h=298&s=588C3472511BE5CE5C5C10CF0000E0B1图1 例1流程图

流程图用到了for循环控制,迭代花名册列表,并输出列表元素,迭代结束后自动退出循环,程序结束。

下面根据图1所示的流程图给出例1程序代码。

u=3716272530,3455710453&fm=173&app=49&f=JPEG?w=640&h=72

在for语句的每次循环中,item变量被设置为student列表的当前元素,被print语句使用。

u=1547415906,2140445893&fm=173&app=49&f=JPEG?w=554&h=232&s=21385C3217786520587D40DB0000C0B2例1输出结果如下图所示。

当用for循环迭代字符串时,迭代变量只会包含单个字符。遍历字符串序列的功能并不常用,在字符串里查找字符时,更常用的是用in操作符来判断一个子串或单个字符是否属于某个字符串。

例2:输出一个字符串的所有字母序列。

程序初始化一个字符串,然后使用for循环语句遍历这个字符串,获取字符串中的单个字符,并用print语句输出。流程图与列1相似,这里不再绘制流程图。程序代码如下:

u=3193318303,3462487360&fm=173&app=49&f=JPEG?w=640&h=78

例2输出结果如下图所示。

u=32575682,2429739902&fm=173&app=49&f=JPEG?w=554&h=235&s=01605C321F6A5520587D40DB0000C0B1

2、 使用序列索引迭代序列对象

例1中使用序列项迭代列表对象,for循环中的in子句会判断当前序列项是否在序列中,如果属于列表则继续循环,否则退出循环。在for循环语句中,也可以使用序列索引来迭代列表。使用序列索引迭代序列对象的语法如下:

for index in range(len(list)):

语句块;

其中,index为序列的索引项,range是一个计数函数,后面会详解解释,len获取序列对象的长度。

例1使用序列索引遍历列表代码如下:

u=3128101795,2769401720&fm=173&app=49&f=JPEG?w=640&h=71

使用range函数可以得到用来迭代index的索引数列表,使用序列对象的访问运算符“[]”,就可以访问对应的序列对象。

3、使用枚举函数迭代序列对象

枚举函数enumerate()用于将序列对象转换为一个索引序列,并返回序列对象的索引和成员,一般在for循环中得到序列对象的索引计数和序列对象成员。使用枚举函数迭代序列对象的语法如下:

for index, iter_var in enumerate (list,start_index=0):

语句块;

其中,index为enumerate返回的索引计数,iter_var为与索引计数对应的序列对象成员,list为待遍历的序列对象,start_index为返回的起始索引计数,起始索引计数默认为0。

例1使用枚举函数遍历列表代码如下:

u=3348765495,2513788729&fm=173&app=49&f=JPEG?w=640&h=71

使用enumerate函数获取student的索引计数,索引计数从0开始,也可以指定起始索引计数。

u=3987073417,229872026&fm=173&app=49&f=JPEG?w=640&h=68

索引计数从2开始,输出结果如下图所示。

u=1647533769,2262603140&fm=173&app=49&f=JPEG?w=531&h=224&s=052855321F6A4520587D40DB0000C0B1

4、 关于range函数

前面介绍的for循环是一种迭代的循环机制,和Java、C++等传统编程语言的for循环有所不同。那么,Python能不能提供类似于传统的for循环功能呢?实现循环从一个数字开始计数到另一个数字,一旦到达最后的数字或者某个条件不再满足就立刻退出循环。

Python提供的range函数可以让for循环实现上面的功能,可以让for循环从0到10计数,或者从10到100每次递增5。range函数的语法如下:

range(start, end, step=1)

range会返回一个整数序列,statr为整数序列的起始值,end为整数序列的结束值,在生成的整数序列中,不包含结束值。step为整数序列中递增的步长,默认为1。

例如:

u=3306281485,2715290202&fm=173&app=49&f=JPEG?w=640&h=130&s=2EC0E0124B6247244A5D20DA000050B2

输出结果如下图所示。

u=4243057500,3146610632&fm=173&app=49&f=JPEG?w=554&h=240&s=A1704C3217786C20487500DB0000C0B1

range(0,5)生成包含0、1、2、3、4的整数序列,Python会把生成的这个整数序列用于for循环语句,循环从0到5,不包括5,步长为1,循环次数为5。

range(10,30,5)生成包含10、15、20、25的整数序列,循环从10到25,不包括30,步长为5,循环次数为4。可以看出,当range用于for循环时,循环次数取决于range返回的整数序列的长度,每次循环的索引计数为整数序列的值。

例3:使用for循环求自然数的阶乘。

自然数的阶乘是所有小于及等于该自然数的积,求自然数k的阶乘,就是从1开始顺序乘以小于等于k的所有自然数,也包括k。程序可以通过range函数返回小于所求自然数的整数序列,然后迭代range函数返回的整数序列。程序代码如下:

u=3974439428,1390198238&fm=173&app=49&f=JPEG?w=640&h=105

课程小结

(1)Python提供的for循环语句和Java、C++等编程语言提供的for语句不同,Python中的for更像是shell或是脚本语言中的foreach循环。它可以遍历如列表、元组、字符串等序列成员(列表、元组、字符串也称为序列),也可以用在列表解析和生成器表达式中。

(2)Pyhton的for循环应用range函数可以实现传统的for循环功能,实现循环从一个数字开始计数到另一个数字,一旦到达最后的数字或者某个条件不再满足就立刻退出循环。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值