可迭代对象与循环

Python 包含以下几种可迭代对象:

  1. 序列。包含:字符串、列表、元组
  2. 字典
  3. 迭代器对象(iterator)
  4. 生成器函数(generator)
  5. 文件对象

我们通过循环来遍历这几种类型的数据:

【操作】 遍历字符串中的字符

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 的数据

姓名年龄薪资城市
小一1830000北京
小二1920000上海
小三2010000深圳
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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值