Python 包含以下几种可迭代对象:
- 序列。包含:字符串、列表、元组
- 字典
- 迭代器对象(iterator)
- 生成器函数(generator)
- 文件对象
我们通过循环来遍历这几种类型的数据:
【操作】 遍历字符串中的字符
for x in "abc001":
print(x)
【操作】 遍历字典
d = {'name':'alice','age':18,'address':'烟台'}
for x in d: #遍历字典所有的 key
print(x)
for x in d.keys():#遍历字典所有的 key
print(x)
for x in d.values():#遍历字典所有的 value
print(x)
for x in d.items():#遍历字典所有的"键值对"
print(x)
range 对象
range 对象是一个迭代器对象,用来产生指定范围的数字序列。格式为:
range(start, end ,step)
生成的数值序列从 start 开始到 end 结束(不包含 end)。若没有填写 start,则默认从 0
开始。step 是可选的步长,默认为 1。如下是几种典型示例:
for i in range(10) 产生序列 | 0 1 2 3 4 5 6 7 8 9 |
---|---|
for i in range(3,10) 产生序列 | 3 4 5 6 7 8 9 |
for i in range(3,10,2) 产生序列 | 3 5 7 9 |
for i in range(6,0,-1)产生序列 | 6 5 4 3 2 1 |
【操作】 利用 for 循环,计算 1-100 之间数字的累加和;计算 1-100 之间偶数的累加和,
计算 1-100 之间奇数的累加和。
sum_all = 0 #1-100 所有数的累加和
sum_even = 0 #1-100 偶数的累加和
sum_odd = 0 #1-100 奇数的累加和
for num in range(101):
sum_all += num
if num%2 == 0:
sum_even += num
else:
sum_odd += num
print("1-100 累加总和{0},奇数和{1},偶数和{2}".format(sum_all,sum_odd,sum_even))
嵌套循环和综合练习
一个循环体内可以嵌入另一个循环,一般称为“嵌套循环”,或者“多重循环”。
【操作】 打印如下图案
0 0 0 0 0
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
for x in range(5):
for y in range(5):
print(x,end="\t")
print() #仅用于换行
【操作】利用嵌套循环打印九九乘法表
for m in range(1,10):
for n in range(1,m+1):
print("{0}*{1}={2}".format(m,n,(m*n)),end="\t")
print()
执行结果:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
【操作】用列表和字典存储下表信息,并打印出表中工资高于 15000 的数据
姓名 | 年龄 | 薪资 | 城市 |
---|---|---|---|
小一 | 18 | 30000 | 北京 |
小二 | 19 | 20000 | 上海 |
小三 | 20 | 10000 | 深圳 |
r1= dict(name="小一",age=18,salary=30000,city="北京")
r2= dict(name="小二",age=19,salary=20000,city="上海")
r3= dict(name="小三",age=20,salary=10000,city="深圳")
tb = [r1,r2,r3]
for x in tb:
if x.get("salary")>15000:
print(x)