循环结构用来重复执行一条或多条语句,使用循环结构可以减少源程序重复书写的工作量。许多算法需要使用到循环结构,Python使用for语句和while语句来实现循环结构。
1.可迭代对象:一次返回一个一个字符。
可迭代对象包括:序列,例如字符串、列表、元组等;字典;文件对象;迭代器对象;生成器函数
迭代器是一个对象,表示可迭代的数据集合。
range是一个迭代器对象,可产生指定范围内的数字序列。
#1-11依次输出
for i in range(1,11):print(i,end=" ")
1 2 3 4 5 6 7 8 9 10
1-11按照步长3依次输出
for i in range(1,11,3):print(i,end=" ")
1 4 7 10
生成器是一个函数,使用yield语句,每次产生一个值。
2.for循环
for语句用于遍历可迭代对象集合中的元素,并对集合中的每个元素执行依次嵌入语句。
格式:
for 变量 in 对象集合:
循环体语句/语句块
示例:0-100奇偶数的各自和:
oushusum = 0
jishusum = 0
for i in range (1,101):
if i % 2 != 0:
jishusum += i
else:
oushusum += i
print("0-100奇数和为:%d"%jishusum)
print("0-100偶数和为:%d"%oushusum)
3.while循环
while循环与for循环的区别在于循环开始前不知道会重复几次语句。
用while输出0-100奇偶数的各自和:
i = 0
a = 0
b = 0
while i <=100:
if i%2==0:
a = i + a
else:
b = i + b
i=i+1
print("1-100偶数和为%d"%a)
print("1-100奇数和为%d"%b)
4.嵌套
一个循环体内又包含另一个完整的循环结构,称之为循环的嵌套。
利用while循环嵌套输出99乘法表
i = 1
while i <= 9:
c = 1
while c <= i:
print("%d * %d = %d\t"%(c , i , i*c),end=" ")
c += 1
print("")
i += 1
利用for循环的嵌套:
i = 1
for i in range(1,10):
j=1
for j in range(1,10) :
if j > i:
continue
else:
print("%d * %d = %d\t"%(j , i , j*i),end="")
j += 1
print("")
i+=1
5.break语句和continue语句
都是用在for或while循环里,用于提前退出循环。
区别在于:continue语句进结束本次循环,并返回到循环起始处,如果条件满足开始下一次循环。
break用于结束循环,跳转到循环的后继语句。
break示例:
while True:
s = input('输入字符串,按q退出')
if s == 'q':
break
print('字符串的长度是:',len(s))
continue可见嵌套的利用
6.zip()函数循环
zip()可将多个元素打包成一个个元组。
a = [0,2,4,6,8]
b = [1,3,5,7,9]
for e,o in zip(a,b):
print("{0}*{1}={2}".format(e,o,e*o))
7.map()函数
map()函数可遍历对象,使用指定函数处理对应的元素。
#计算绝对值
print(list(map(abs,[-1,0,7,-8])))
#计算乘幂
print(list(map(pow,range(5),range(5))))
#计算ASCII码
print(list(map(ord,'abcdef')))
#字符串拼接
print(list(map(lambda x,y:x+y,'abc','de')))