49.嵌套循环和综合练习
一个循环体内可以嵌入另一个循环,一般称为“嵌套循环”,或者“多重循环”。
实例代码
1 打印如下图案
【操作】打印如下图案
for x in range(5):
for y in range(5): # (循环打印0,然后再打印1)
print(x, end='\t') # 加 \t 制表符 (就是空格或者tab一下的效果)
print() # 这行是换行的意思,打完5个数就换行,也可以加 \n 换行符
# print() 单独写 不加参数 默认是会换行的
In [5]: for x in range(5):
...: for y in range(5): # (循环打印0,然后再打印1)
...: print(x, end='\t') # 加 \t 制表符 (就是空格或者tab一下的效果)
...: print()
...:
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
2 利用嵌套循环打印九九乘法表
【操作】利用嵌套循环打印九九乘法表
for m in range(1, 10):
for n in range(1, m+1): # 第二个数字改为了 m+1 不然打印出来 是1*1 到 1*9 全部打出来了.
print('{0}*{1}={2}'.format(m, n, (m * n)), end='\t')
print()
In [6]: for m in range(1, 10):
...: for n in range(1, m+1): # 第二个数字改为了 m+1 不然打印出来 是1*1 到 1*9 全部打出来了.
...: 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
3 遍历列表中的字典。并条件判断
r1 = dict(name='onespis', age=18, salary=30000, city='北京')
r2 = dict(name='lufei', age=19, salary=20000, city='上海')
r3 = dict(name='suolong', age=20, salary=10000, city='深圳')
tb = [r1, r2, r3]
for x in tb:
if x.get('salary') > 15000:
print(x)
In [7]: r1 = dict(name='onespis', age=18, salary=30000, city='北京')
...: r2 = dict(name='lufei', age=19, salary=20000, city='上海')
...: r3 = dict(name='suolong', age=20, salary=10000, city='深圳')
...: tb = [r1, r2, r3]
...: for x in tb:
...: if x.get('salary') > 15000:
...: print(x)
...:
{'name': 'onespis', 'age': 18, 'salary': 30000, 'city': '北京'}
{'name': 'lufei', 'age': 19, 'salary': 20000, 'city': '上海'}
关于 练习2 打印 99 乘法表。
可以看看 。 因为用到 推导式。 所以可以后面再去理解。
总的来说 。 这个 表达式用到的知识 ,除了 推导式 目前 只是简单 带了 一下。
其他知识都是讲过的。
join
for
range
字符格式化
print
都讲过了。
推导式 本质上其实 也是一种 循环 。
只是 语法形式不一样。 是一种语法糖。
糖是甜的 。 所以想表达的是什么。 大家应该能理解。
In [8]: print("\n",*[" ".join([f"{i}*{j}={i*j: >2d}\t" for j in range(i, 10)[::-1]])+"\n" for i in range(1, 10)])
1*9= 9 1*8= 8 1*7= 7 1*6= 6 1*5= 5 1*4= 4 1*3= 3 1*2= 2 1*1= 1
2*9=18 2*8=16 2*7=14 2*6=12 2*5=10 2*4= 8 2*3= 6 2*2= 4
3*9=27 3*8=24 3*7=21 3*6=18 3*5=15 3*4=12 3*3= 9
4*9=36 4*8=32 4*7=28 4*6=24 4*5=20 4*4=16
5*9=45 5*8=40 5*7=35 5*6=30 5*5=25
6*9=54 6*8=48 6*7=42 6*6=36
7*9=63 7*8=56 7*7=49
8*9=72 8*8=64
9*9=81
In [9]: print("\n",*[" ".join([f"{i}*{j}={i*j: >2d}\t" for j in range(1, i+1)])+"\n" for i in range(1, 10)])
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