Day 5
for 循环通常用于可迭代对象的遍历。for 循环的语法格式如下:
for 变量 in 可迭代对象:
循环体语句
【操作】遍历一个元组或列表
#测试for循环
for x in (10,20,30):
print(x,end='\t')
结果如下:
10 20 30
可迭代对象
Python包含以下几种可迭代对象:
- 序列。包含:字符串、列表、元组
- 字典
- 迭代器对象(iteratior)
- 生成器函数(generator)
- 文件对象
【操作】遍历字符串中的字符
for y in "abcdef":
print(y,end='\t')
结果:a b c d e f
【操作】遍历字典
#字典的遍历
d={'name':'zhang','age':18,'job':'程序员'}
for x in d: #遍历字典所有的key
print(x,end='\n')
for x in d.keys(): #遍历字典所有的key
print(x,end='\t')
for x in d.values(): #遍历字典所有的value
print(x, end='\t')
for x in d.items(): #遍历字典所有的键值对
print(x,end='\t')
结果如下:
name
age
job
name age job zhang 18 程序员
('name', 'zhang') ('age', 18) ('job', '程序员')
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循环,计算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所有数累加和',sum_all)
print('1-100所有偶数累加和',sum_even)
print('1-100所有奇数累加和',sum_odd)
结果:
1-100所有数累加和 5050
1-100所有偶数累加和 2550
1-100所有奇数累加和 2500
嵌套循环
一个循环体内可以嵌入另一个循环,成为“嵌套循环”
【操作】打印下列图案
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('\n') #起到换行的作用
结果:
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 y in "abcdef":
print(y,end='\t')
结果:a b c d e f
【操作】遍历字典
#字典的遍历
d={'name':'zhang','age':18,'job':'程序员'}
for x in d: #遍历字典所有的key
print(x,end='\n')
for x in d.keys(): #遍历字典所有的key
print(x,end='\t')
for x in d.values(): #遍历字典所有的value
print(x, end='\t')
for x in d.items(): #遍历字典所有的键值对
print(x,end='\t')
结果如下:
name
age
job
name age job zhang 18 程序员
('name', 'zhang') ('age', 18) ('job', '程序员')
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