1.遍历循环 for
2.无限循环while
3.循环控制保留字break continue
4.循环的高级用法else
1.遍历循环
从遍历结构中逐一提取元素,放在循环变量中
由保留字 for 和 in 组成,完整遍历所有元素后结束
每次循环,所获得元素放入循环变量,并执行一次语句块
for <循环变量> in <遍历结构>:
<语句块>
1.1计数循环
for i in range(3):
print(i,end="")
细节讲解
end="" 的意思为不换行
end="," 意思为每个打印末尾添加,号,不换行
print()函数默认自动换行
输出
0 1 2
1.2计数循环
for i in range(1,5):
print(i,end="")
输出
1 2 3 4
1.3计数循环
for i in range(1,5,2):
print(i)
输出
1 3
细节讲解
第三个参数为<步长> 每隔多少个的意思
1.4字符串遍历循环
字符串有多少个就遍历循环多少次
for i in <字符串>:
<语句块>
num = 0
for i in "abc":
print(i,end="")
num = num +1
print(num,end="")
输出结果为
a 1 b 2 c 3
1.5列表遍历循环
for item in ls:
<语句块>
ls是一个列表,遍历其每个元素
,把每个元素放到item
变量中,产生循环
***这里的item变量也可以是i只是一个变量名字与命名无关
ls =[123,"py",456]
num1 = 0
for i in ls:
print(i,end="<-列表里面的元素")
num1 = num1+1
print(num1)
输出结果
123<-列表里面的元素1
py<-列表里面的元素2
456<-列表里面的元素3
1.6文件遍历循环
for line in file:
<语句块>
file = open('book3.txt','rb')
# 得到的数据类型为<class '_io.BufferedReader'>
详细讲解
# 打开文件 book3.txt 读取方式为 rb 并且命名为file
# 因为本py脚本文件与book3.txt文件处于同一个文件目录下,所以不用添加指定盘符路径
# 采用rb模式打开文本,因为文本里面存在中文,目的避免出现乱码
# 注意 open()函数里面的参数都需要添加引号
为了防止出错,可以使用readlines()
函数
file1 = file.readlines()
readlines()
函数,的意思是把file里面的所有行都读取到 变量file1 里面 自动转换为列表模式<class 'list'>
有多少行就遍历多少次
lineDecode = line.decode("UTF-8")
的意思为把该变量中的数据用UTF-8的格式来读取解码,因为我的文件里面有中文,不然它原本的二进制文件显示的时候会报错
file = open('book3.txt','rb')
num2 = 0
for line in file:
lineDecode= line.decode("UTF-8")
num2 = num2 +1
print(lineDecode)
print(num2)
2无限循环
2.1由条件控制的循环运行方式
while < 条件 > :
<语句块>
担负执行语句块,直到条件不满足时结束
2.2无限循环的条件
以下代码仅执行三次
a1 = 3
while a1>0:
a1=a1-1
print(a1)
以下代码无限次执行
a2 = 3
while a2 >0:
a2 = a2 +1
print(a2)
python
环境下按Ctrl+c
可以退出循环(也可以关闭cmd)
3循环控制保留字break continue
break 跳出并且结束当前整个循环,执行循环后的语句
continue 结束当次的循环,继续执行后续次数循环
a3 = 10
for i in "Luichun":
if i =="c":
continue
a3 = a3 + 1
print(i,a3)
上面的代码意思为:当遇到字符串等于c
的时候就忽略当次的循环,直接到下一轮的循环
a4 = 10
for i in "Luichun":
if i =="c":
break
print(i)
上面的代码意思为;当遇到字符串等于c
则直接停止剩余的循环,结束整个循环
当有多个循环break怎么执行?(这个循环为break最内层的循环)不对外层影响
4循环的高级用法
4.1循环与else
当循环没有被break
语句退出时,执行else
语句块
else
语句块作为正常完成循环的奖励
for i in "dalao":
if i =="a":
continue
print(i,end="")
else:
print("正常退出")
输出结果为
dlo正常退出
for i in "dalao":
if i =="a":
break
print(i,end="")
else:
print("正常退出")
输出的结果为
d
因为循环到a
的时候,条件触发剩下的就直接退出了,else
语句块的也就不执行了