Daniel_Zhang 发表于 2020-12-29 02:42:47

有件事挺诡异的

为什么有一个求助,我上传了回答,却一直没显示出来,换了个电脑也不行,是我电脑卡了还是咋的?

手动加上求助帖的链接

关于for循环的一个疑问
https://fishc.com.cn/thread-187724-1-1.html
(出处: 鱼C论坛)

以下是我的回答,希望能帮到求助者

# 初始化杨辉三角形
# 创建一个10*10的二维列表,并将所有的元素初始化为0
triangle = []
for i in range(10):
    triangle.append([]) # 此处表明,插入 10 个 空列表,作为 triangle 的 每一行, 用来存储每一行对应的列,即每一行的元素,此时 triangle 列表里面一共会添加 10 个 单独的空列表
    for j in range(10):
      if j <= i:# 通过观察可以得知,杨慧三角的每一行的元素个数,与该行的行数相等,所以当 列数 j 小于等于 行数 i 时,持续向行里面添加 0,进行初始化
            triangle.append(0)
      # 当 j 大于 i 时,则不向该行继续添加元素,内层 for 循环结束后,自动进入下一行,直到运行完十行

# 此处为测试代码,仅供参考,方便理解
for i in range(10):
    for j in range(10):
      if j <= i:
            print(triangle, end = ' ')    # 每次打印后,不换行,以空格结尾
    print() # 当打印完一行后,换行
# 测试代码完结,下面为程序主体

# 计算杨辉三角形
# 根据观察,我们知道杨辉三角形左右两边的元素均为1
for i in range(10):
    triangle = 1# 最左侧的元素赋值为 1
    triangle = 1# 最右侧的元素赋值为 1

# 此处为测试代码,仅供参考,方便理解
for i in range(10):
    for j in range(10):
      if j <= i:
            print(triangle, end = ' ')
    print()
# 测试代码完结,下面为程序主体

for i in range(2, 10):# 根据观察,从第二行开始,才存在 ”第i行j列的值 = 第(i-1)行(j-1)列的值 + 第(i-1)行(j)列的值“ 的情况
    for j in range(1, i):   # 每一行的第一个数为 1,所以此处从 triangle 开始遍历,直到 triangle
      triangle = triangle + triangle# 第i行j列的值 = 第(i-1)行(j-1)列的值 + 第(i-1)行(j)列的值

# 此处打印杨辉三角结果
for i in range(10):
    for j in range(10):
      if j <= i:
            print(triangle, end = ' ')
    print()

Daniel_Zhang 发表于 2020-12-29 02:44:05

手动艾特一下 @阿你爸爸

小甲鱼 发表于 2020-12-29 03:35:12

回帖被防火墙拦截了,人工审核后将放出来哈~
页: [1]
查看完整版本: 有件事挺诡异的