循环
一、 for - in循环
语法结构:
for 变量 in 集合:
#针对可迭代对象(集合);循环的次数,取决于迭代集合的大小
遍历列表:
a=[1,2,3,4]
for i in a:
print(i)
结果:
1
2
3
4
遍历列表及索引:
a=['php','人工','数据']
for x,y in enumerate(a):
print(x,y)
输出结果:
0 php
1 人工
2 数据
遍历元组:
a=('php','人工','数据')
for x,y in enumerate(a):
print(x,y)
输出结果
0 php
1 人工
2 数据
遍历字典
items(): 返回字典内key-value对
keys():返回字典内所有key列表
values(): 返回字典内所有value列表
例:
a={'php':"123",'人工':"456",'数据':"789"}
for x,y in a.items():
print(x,y)
a={'php':"123",'人工':"456",'数据':"789"}
for x in a.keys():
print(x)
a={'php':"123",'人工':"456",'数据':"789"}
for x in a.values():
print(x)
遍历字符串:
a="123456"
for i in a:
print(i)
练习:
构造一个列表,其有正数、负数、零构成。将其中的正数输出。
a=["123","345","-234", False]
for i in a:
if int(i)> 0:
print(i)
输出结果:
123;345
二、for—in次数控制
2.1 语法结构:
range(开始值,结束值,间隔)
#range函数生成数字列表,可以指定:开始值,结束值,间隔 ——结束值不在区间中
a=range(0,10,5)
print(a)#生成可迭代对象,(类型是对象)
输出结果
range(0, 10, 5)
加上列表
a=range(0,10,5)
print(list(a))#把可迭代对象转换成一个列表
输出结果:
[0, 5]
注意:
c = range(1,5)#默认距离1
print(list(c))
d = range(5)#默认从0开始
print(list(d))
输出结果:
[1, 2, 3, 4]
[0, 1, 2, 3, 4]
2、2 循环:
for x in range(1,4):
print(x,"循环")
输出结果:
1 循环
2 循环
3 循环
练习1:计算1到100的和。
x=range(1,101)
y=sum(x)
print(y)
输出结果:5050
也可以一步到位:
print(sum(range(1,101)))
练习2:输出1到100内所有的奇数。
for x in range(1,100):
if x%2==1:
print(x)
for x in range(1,100,2):
print(x)
练习3:将1到100以内所有被7整除的数输出。
for x in range(1,100):
if x%7==0:
print(x)
for x in range(0,100,7):
if x!=0:
print(x)
三、while循环
语法结构:
while 条件表达式:
循环体
#shile循环:条件为真时,运行循环体;需要注意:最后要让条件表达式不成立
增值案例:
i = 0
while i < 5:
print(i)
i += 1
输出结果:
1
2
3
4
减值案例:
i = 5
while i > 0:
print(i)
i -= 1
输出结果:
5
4
3
2
1
练习1:输出10以内的所有奇数:
x=1
while x<10:
if x%2==1:
print(x)
x+=1
x=1
while x<10:
print(x)
x+=2
输入名字案例(空值):
name="" #知识点:空值为假,非空值为真
while not name:
name=input('请输入您的姓名:')
print("您好:",name)
输出结果:
请输入您的姓名:
请输入您的姓名:
请输入您的姓名:
请输入您的姓名:张三
您好: 张三
练习2:
将1到100以内所有被7整除的数输出。
• 方式A:通过控制初始值和循环变量的方式。
• 方式B:通过循环结构嵌套选择结构的方式。
x=0
while 0<x<100 :
print(x)
x+=7
x=1
while x<100:
if x%7==0:
print(x)
x+=1
四、while遍历
基础案例:
挨个遍历
a = [7,9,8,10]
i = 0
while i < len(a):
print(a[i])
i += 1
输出结果:
7
9
8
10
奇偶数遍历:
a=[1,3,45,4,5,6,7,867,65,735]
i=0
x=[]#x定义成偶数
y=[]#定义成奇数
while i<len(a):
if a[i]%2==0:
x.append(a[i])
else:
y.append(a[i])
i+=1
print("偶数:",x)
print("奇数:",y)
为索引遍历
输出结果:
偶数: [4, 6]
奇数: [1, 3, 45, 5, 7, 867, 65, 735]
a=[1,3,45,4,5,6,7,867,65,735]
x=[]#x定义成偶数
y=[]#定义成奇数
while len(a)>0:
i=a.pop()
if i%2==0:
x.append(i)
else:
y.append(i)
print("偶数:",x)
print("奇数:",y)
删除最后一位进行判断奇偶性,直到遍历完成。
偶数: [6, 4]
奇数: [735, 65, 867, 7, 5, 45, 3, 1]
练习:计算一个列表内:
• 奇数的个数。
• 偶数的个数。
a=[1,3,45,4,5,6,7,867,65,735]
x=[]#x定义成偶数
y=[]#定义成奇数
while len(a)>0:
i=a.pop()
if i%2==0:
x.append(i)
else:
y.append(i)
print("偶数的个数:",len(x))
print("奇数的个数:",len(y))
输出结果:
偶数的个数: 2
奇数的个数: 8
五、跳出循环
语法结果:
循环(while或for-in)
if表达式
break
break语句:结束循环,完全结束一个循环,跳出循环体
核心理解:不需要完成整个循环
例:
列表内是否处在零值:
a=[1,3,45,0,4,5,65,735]
x=0
numbers=1
for y in a:
print("这是第",numbers,"次循环")
if y==0:
x=1
numbers+=1
if x==0:
print("列表里没有零")
else:
print("列表里有零")
输出结果:
这是第 1 次循环
这是第 2 次循环
这是第 3 次循环
这是第 4 次循环
这是第 5 次循环
这是第 6 次循环
这是第 7 次循环
这是第 8 次循环
列表里有零
当有break时:
a=[1,3,45,0,4,5,65,735]
x=0
numbers=1
for y in a:
print("这是第",numbers,"次循环")
if y==0:
x=1
break
numbers+=1
if x==0:
print("列表里没有零")
else:
print("列表里有零")
输出结果:
这是第 1 次循环
这是第 2 次循环
这是第 3 次循环
这是第 4 次循环
列表里有零
练习:
使用break,判断一个列表内,是否存在奇数
a=[2,4,45,0,4,5,65,735]
x=0
number=1
for y in a:
print("这是第",number,"次循环")
if y%2==1:
x=1
break
number+=1
if x==1:
print("存在")
else:
print("不存在")
输出结果:
这是第 1 次循环
这是第 2 次循环
这是第 3 次循环
存在
六、跳出循环continue
语法:
语法结果:
循环(while或for-in)
if表达式
continue
continue语句:结束循环,忽略当前循环的剩下语句,从下一次执行
核心理解:本次循环的后续不执行了,从下一轮继续。
输出列表内的奇数:
a=[2,4,45,0,4,5,65,735]
for i in a:
if i%2==0:
continue
print(i)
45
5
65
735
自我理解:当你满足条件时,continue就给你结束,后面就不输出了,此次循环就结束了,开始下一循环。
输出指的关注的值:
a = [14,46,76,-98,68,13,78,45,65,-100,200]
for x in a:
if 0<=x<=100:
continue
print("请关注异常值:",x)
请关注异常值: -98
请关注异常值: -100
请关注异常值: 200
练习:输出一个列表内,所有被3整除的数
a = [14,46,76,-98,68,13,78,45,65,-100,200]
b =[]
for i in a:
if i%3!=0:
continue
b.append(i)
print("所有被三整除的数",b)
输出结果:
所有被三整除的数 [78, 45]