python基础梳理(四)for循环、range()及continue语句

C语言中我们学过循环语句有:while/do…while/for等语句
python只提供俩种循环语句: while和for
上一讲说了简单的while循环,除了格式和c语言有差别,其余是一样的。

一、for循环
作用:在python中用于遍历一些可迭代的对象的数据元素
语法:
for 变量列表 in 可迭代对象:
语句块1
else:
语句块2
说明:1.可迭代对象每次提供一个元素一次赋值给变量列表中的变量,赋值完毕后执行语句块1,重复执行
2.可迭代对象不能给变量列表提供数据时,会执行else部分,并且语句块2只执行一次
3.同while,else可以省略
4.当语句1中有break时,会跳出整个循环,并且语句2都不会执行,因为python中认为后面的else和前面的while是一个整体,属于循环,所以不执行

示例1:for循环的使用
在这里插入图片描述
1.变量i:在for循环中不需要提前定义,直接就可以使用,默认初值为A
2.过程:i变量每次循环存储一个s中的数据,知道将可迭代对象中的数据遍历完全
3.i的值最终是可迭代对象的最后一个数据,这里即为E

示例2:for循环与break的结合使用
在这里插入图片描述
从上图可以知道,当for循环遇到break语句后,之后的else将不再执行。

二、range()函数
作用:用来创建一个生成一系列整数的可迭代对象,也叫整数序列生成器
调用格式:
1.range(stop):默认从0开始,每次生成一个整数,然后向右边移动一个位置并且加1,直到到达stop,但不包括stop
2.range(start,stop,step):从start这个数开始,到stop结束,但不包括stop,每次移动步数为step,step可以为负整数,意义为反方向。

示例3:range()函数在for循环中怎么执行
在这里插入图片描述
range在for循环中只执行一次,并且生成一个整数序列,后续修改i的值,对已经生成的序列不产生任何影响,range函数是for循环中第一个执行的。

示例4.打印3-30之间的数,并且每5个放在一起
在这里插入图片描述

看一个简单的例子,for语句中range和and语句一起使用的一个状态:
在这里插入图片描述
分析:由于range(5)为真,and优先返回错误的对象,否则返回最后的对象,所以执行and后面的语句,都为真,所以最终生成整数序列为range(6,10),即x保存的打印的6 7 8 9

三、for循环的嵌套

示例:嵌套规则与c语言无差别

在这里插入图片描述
示例5:打印ABCDEF…XYZ

在这里插入图片描述示例6:打印AaBbCc…YyZz
在这里插入图片描述

四、continue语句
作用与c语言一样,是停止本次循环,而不是跳出整个循环
与break一样都是用在循环语句中
1.用在while语句中时,遇到continue后,直接跳到真值表达式去判断
2.用在for循环中,遇到continue后,直接去可迭代对象中取下一个数据元素,绑定变量列表
示例7:
在这里插入图片描述

四、for循环中遇到的一个与作用域有关的问题
在这里插入图片描述
从上述程序我们可以看出当x出for循环后,x中居然还保存着4这个对象,而不是想象中的失效或者未定义。
原因:python中,只有模块、类、函数才会引入新的作用域,其他语句不会引入新的作用域,所以这里实际上属于一个作用域(某大佬如是说,听起来很有道理)

再来看一个例子:
在这里插入图片描述

range(5,0)明显会产生一个空的序列,所以没有办法五遍历,在这里也就不会产生变量x去接收可迭代对象的数据,所以x为Not defined

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值