鱼C论坛

 找回密码
 立即注册
查看: 2585|回复: 20

[已解决]print缩进

[复制链接]
发表于 2021-2-22 22:59:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 whowho 于 2021-2-23 00:01 编辑

for i in range(5):
    result = []
    for m in range(10):
        result.append(i*1000+m*100)
        print(result)
print(result)
    print(result)
请问这三种print缩进在这个代码里代表什么意思?
最佳答案
2021-2-27 22:29:30
whowho 发表于 2021-2-23 19:48
第一个print执行的结果怎么理解[0]
[0, 100]
[0, 100, 200]

这是print在最内层的情况:
  1. for i in range(5):
  2.     result = []
  3.     for m in range(10):
  4.         result.append(i*1000+m*100)
  5.         print(result)
复制代码

一、i=0: 执行result = []
        m=0 执行
        result.append(i*1000+m*100)
        print(result)
结果为[0]
        m=1 执行
        result.append(i*1000+m*100)
        print(result)
结果为[0, 100]
        m=2 执行
        result.append(i*1000+m*100)
        print(result)
结果为[0, 100, 200]
        。。。。
        m=9 执行
        result.append(i*1000+m*100)
        print(result)
结果为:[0, 100, 200, 300, 400, 500, 600, 700, 800, 900]

二、i=1:执行result = [](清空)
        m=0 执行
        result.append(i*1000+m*100)
        print(result)
结果为[1000]
        m=1 执行
        result.append(i*1000+m*100)
        print(result)
结果为[1000, 1100]
        m=2 执行
        result.append(i*1000+m*100)
        print(result)
结果为[1000, 1100, 1200]
        。。。。
        m=9 执行
        result.append(i*1000+m*100)
        print(result)
结果为:[1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900]

三、i=2:执行result = [](清空)
        m=0 执行
        result.append(i*1000+m*100)
        print(result)
结果为[2000]
        m=1 执行
        result.append(i*1000+m*100)
        print(result)
结果为[2000, 2100]
        m=2 执行
        result.append(i*1000+m*100)
        print(result)
结果为[2000, 2100, 2200]
        。。。。
        m=9 执行
        result.append(i*1000+m*100)
        print(result)
结果为:[2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900]



五、i=4:执行result = [](清空)
        m=0 执行
        result.append(i*1000+m*100)
        print(result)
结果为[4000]
        m=1 执行
        result.append(i*1000+m*100)
        print(result)
结果为[4000, 4100]
        m=2 执行
        result.append(i*1000+m*100)
        print(result)
结果为[4000, 4100, 4200]
        。。。。
        m=9 执行
        result.append(i*1000+m*100)
        print(result)
结果为:[4000, 4100, 4200, 4300, 4400, 4500, 4600, 4700, 4800, 4900]  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-22 23:13:15 | 显示全部楼层
一、在内层for循环里:对应打印50次(内层次数乘以外层)
二、在外层for循环外:只打印一次
三、在外层for循环里,内层for循环外,打印5次(外层次数)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-23 00:16:50 | 显示全部楼层
昨非 发表于 2021-2-22 23:13
一、在内层for循环里:对应打印50次(内层次数乘以外层)
二、在外层for循环外:只打印一次
三、在外层fo ...

最外层print为什么是这个循环结果[4000, 4100, 4200, 4300, 4400, 4500, 4600, 4700, 4800, 4900]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-23 00:18:38 | 显示全部楼层
本帖最后由 昨非 于 2021-2-23 00:22 编辑
whowho 发表于 2021-2-23 00:16
最外层print为什么是这个循环结果[4000, 4100, 4200, 4300, 4400, 4500, 4600, 4700, 4800, 4900]


最后一次循环,i=4,m一次为0到9
4*1000+(0~9)*100,不就是答案吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-23 00:23:13 | 显示全部楼层
理解了记得设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-23 00:29:38 | 显示全部楼层
昨非 发表于 2021-2-23 00:23
理解了记得设置最佳答案

i不是从0到4循环,为什么只是循环最后一次
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-23 00:31:44 From FishC Mobile | 显示全部楼层
whowho 发表于 2021-2-23 00:29
i不是从0到4循环,为什么只是循环最后一次

因为你之前添加的内容在执行到result = []的时候被清空了啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-23 00:36:07 | 显示全部楼层
昨非 发表于 2021-2-23 00:31
因为你之前添加的内容在执行到result = []的时候被清空了啊

清空?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-23 00:44:32 From FishC Mobile | 显示全部楼层
whowho 发表于 2021-2-23 00:36
清空?

对啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-23 00:45:56 From FishC Mobile | 显示全部楼层
whowho 发表于 2021-2-23 00:36
清空?

这行代码定义空列表
如果已经存在,也会把里面的东西全清空生成新的空列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-23 01:00:06 | 显示全部楼层

意思就是,每次 for i in range(5) 循环的时候

都会重新调用一遍 result = []

也就是每一次都会重新定义 result 列表,并初始化为一个 空列表

result 在这里就是一个局部变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-23 10:02:39 | 显示全部楼层
第二个print的位置是正确的吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-23 12:36:49 | 显示全部楼层
Curtain丶柒 发表于 2021-2-23 10:02
第二个print的位置是正确的吗?

不同打印方法而已,哪儿有什么正确不正确
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-23 13:54:07 | 显示全部楼层
昨非 发表于 2021-2-23 12:36
不同打印方法而已,哪儿有什么正确不正确

看了一下, 问的是打印方式, 我还以为是三种放进去一起执行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-23 19:48:13 | 显示全部楼层
昨非 发表于 2021-2-23 00:45
这行代码定义空列表
如果已经存在,也会把里面的东西全清空生成新的空列表

第一个print执行的结果怎么理解[0]
[0, 100]
[0, 100, 200]
[0, 100, 200, 300]
[0, 100, 200, 300, 400]
[0, 100, 200, 300, 400, 500]
[0, 100, 200, 300, 400, 500, 600]
[0, 100, 200, 300, 400, 500, 600, 700]
[0, 100, 200, 300, 400, 500, 600, 700, 800]
[0, 100, 200, 300, 400, 500, 600, 700, 800, 900]
[1000]
[1000, 1100]
[1000, 1100, 1200]
[1000, 1100, 1200, 1300]
[1000, 1100, 1200, 1300, 1400]
[1000, 1100, 1200, 1300, 1400, 1500]
[1000, 1100, 1200, 1300, 1400, 1500, 1600]
[1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700]
[1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800]
[1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900]
[2000]
[2000, 2100]
[2000, 2100, 2200]
[2000, 2100, 2200, 2300]
[2000, 2100, 2200, 2300, 2400]
[2000, 2100, 2200, 2300, 2400, 2500]
[2000, 2100, 2200, 2300, 2400, 2500, 2600]
[2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700]
[2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800]
[2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900]
[3000]
[3000, 3100]
[3000, 3100, 3200]
[3000, 3100, 3200, 3300]
[3000, 3100, 3200, 3300, 3400]
[3000, 3100, 3200, 3300, 3400, 3500]
[3000, 3100, 3200, 3300, 3400, 3500, 3600]
[3000, 3100, 3200, 3300, 3400, 3500, 3600, 3700]
[3000, 3100, 3200, 3300, 3400, 3500, 3600, 3700, 3800]
[3000, 3100, 3200, 3300, 3400, 3500, 3600, 3700, 3800, 3900]
[4000]
[4000, 4100]
[4000, 4100, 4200]
[4000, 4100, 4200, 4300]
[4000, 4100, 4200, 4300, 4400]
[4000, 4100, 4200, 4300, 4400, 4500]
[4000, 4100, 4200, 4300, 4400, 4500, 4600]
[4000, 4100, 4200, 4300, 4400, 4500, 4600, 4700]
[4000, 4100, 4200, 4300, 4400, 4500, 4600, 4700, 4800]
[4000, 4100, 4200, 4300, 4400, 4500, 4600, 4700, 4800, 4900]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-23 19:48:47 | 显示全部楼层
Daniel_Zhang 发表于 2021-2-23 01:00
意思就是,每次 for i in range(5) 循环的时候

都会重新调用一遍 result = []

第一个print执行的结果怎么理解[0]
[0, 100]
[0, 100, 200]
[0, 100, 200, 300]
[0, 100, 200, 300, 400]
[0, 100, 200, 300, 400, 500]
[0, 100, 200, 300, 400, 500, 600]
[0, 100, 200, 300, 400, 500, 600, 700]
[0, 100, 200, 300, 400, 500, 600, 700, 800]
[0, 100, 200, 300, 400, 500, 600, 700, 800, 900]
[1000]
[1000, 1100]
[1000, 1100, 1200]
[1000, 1100, 1200, 1300]
[1000, 1100, 1200, 1300, 1400]
[1000, 1100, 1200, 1300, 1400, 1500]
[1000, 1100, 1200, 1300, 1400, 1500, 1600]
[1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700]
[1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800]
[1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900]
[2000]
[2000, 2100]
[2000, 2100, 2200]
[2000, 2100, 2200, 2300]
[2000, 2100, 2200, 2300, 2400]
[2000, 2100, 2200, 2300, 2400, 2500]
[2000, 2100, 2200, 2300, 2400, 2500, 2600]
[2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700]
[2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800]
[2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900]
[3000]
[3000, 3100]
[3000, 3100, 3200]
[3000, 3100, 3200, 3300]
[3000, 3100, 3200, 3300, 3400]
[3000, 3100, 3200, 3300, 3400, 3500]
[3000, 3100, 3200, 3300, 3400, 3500, 3600]
[3000, 3100, 3200, 3300, 3400, 3500, 3600, 3700]
[3000, 3100, 3200, 3300, 3400, 3500, 3600, 3700, 3800]
[3000, 3100, 3200, 3300, 3400, 3500, 3600, 3700, 3800, 3900]
[4000]
[4000, 4100]
[4000, 4100, 4200]
[4000, 4100, 4200, 4300]
[4000, 4100, 4200, 4300, 4400]
[4000, 4100, 4200, 4300, 4400, 4500]
[4000, 4100, 4200, 4300, 4400, 4500, 4600]
[4000, 4100, 4200, 4300, 4400, 4500, 4600, 4700]
[4000, 4100, 4200, 4300, 4400, 4500, 4600, 4700, 4800]
[4000, 4100, 4200, 4300, 4400, 4500, 4600, 4700, 4800, 4900]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-23 19:58:39 | 显示全部楼层
whowho 发表于 2021-2-23 19:48
第一个print执行的结果怎么理解[0]
[0, 100]
[0, 100, 200]

你自己对照着每次循环都是啥不就知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-24 15:53:01 | 显示全部楼层
就这几行代码真的那么难懂吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-25 16:44:54 | 显示全部楼层
昨非 发表于 2021-2-24 15:53
就这几行代码真的那么难懂吗

新手嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-25 17:00:41 | 显示全部楼层
whowho 发表于 2021-2-23 19:48
第一个print执行的结果怎么理解[0]
[0, 100]
[0, 100, 200]
  1. for i in range(5): #5次循环,i=0, 1, 2, 3, 4
  2.     result = []
  3.     for m in range(10):#m=0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  4.         result.append(i*1000+m*100) #不断给列表result加i*1000+m*100
  5.         print(result)#打印列表
  6. print(result)#错了,应是第三个在前
  7.     print(result)#打印最后一次循环后的列表,上面一样
复制代码

第一次时,列表里只有i*1000+m*100=0,所以会这样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 00:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表