49_嵌套循环(for 循环的嵌套)和综合练习

49.嵌套循环和综合练习

一个循环体内可以嵌入另一个循环,一般称为“嵌套循环”,或者“多重循环”。

实例代码

1 打印如下图案

【操作】打印如下图案

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YX1YhMZj-1597492300848)(AA660F3D41504BFEAB6697F64AC1AF10)]

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值