lrq51678 发表于 2023-2-16 19:42:37

python新版第24章杨辉三角形

老师请看图片,为什么你写的代码for循环迭代下次时候原值会自动变成0,我的怎么不会?一样的代码...
# 初始化杨辉三角形
# 创建一个10*10的二维列表,并将所有的元素初始化为0
triangle = []
for i in range(10):
    triangle.append([])
    for j in range(10):
      triangle.append(0)
   
# 计算杨辉三角形
# 根据观察,我们知道杨辉三角形左右两边的元素均为1
for i in range(10):
    triangle = 1
    triangle = 1
print(triangle)

print('******分割线********')
print('******分割线********')

a=[]*10
for i in range(10):
    a=1
    a=1
print(a)

isdkz 发表于 2023-2-16 19:49:49

把 a = [] * 10 换成 a = [ for i in range(10)]

a = [] * 10 里面的所有列表都是同一个地址,改变其中一个其它的都跟着变
>>> a = [] * 10
>>> a
[, , , , , , , , , ]
>>> a = 1
>>> a
[[1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], , , , , , , , ]
>>> a = [ for i in range(10)]
>>> a
[, , , , , , , , , ]
>>> a = 1
>>> a
[[1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], , , , , , , , ]
>>>

lrq51678 发表于 2023-2-16 19:51:47

isdkz 发表于 2023-2-16 19:49
把 a = [] * 10 换成 a = [ for i in range(10)]

a = [

好的 懂了 谢谢老师
页: [1]
查看完整版本: python新版第24章杨辉三角形