python写杨辉三角形的规律_Python实现杨辉三角的几种形式

境界一、这个非常直接和苍白,值得注意的是对象之间的引用与复制,要确定是否只是引用的改变或者是否在内存堆中创建实体的副本。L = t 就是引用的拷贝,而L = t.copy()是内容级别的较深的拷贝。

def yanghui(max):

t = [1]

n = 1

while n

print(t)

if n>0:

L = t.copy()

for i in range(1,len(t)):

L[i] = t[i]+t[i-1]

L.append(1)

t = L

n= n+1

return 'done'

境界二、这里面使用到了yield,将这个函数表达成为了一个生成器。

def yanghuiG(max):

t = [1]

n = 1

while n

yield t

if n>0:

L = t.copy()

for i in range(1,len(t)):

L[i] = t[i]+t[i-1]

L.append(1)

t = L

n = n + 1

return 'done'

境界三、当t = [1]时,for i in range(len(t) – 1)]实际上是for i in range(0), 这时i是一个空list,就不会返回i,会自动跳出第一次循环,直接执行下一行语句

def yanghuiG3(max):

t = [1]

n= 0

while n

yield t

t = [t[i] + t[i+1] for i in range(len(t)-1)]

t.insert(0, 1)

t.append(1)

n = n + 1

return 'done'

你可能感兴趣的:(python写杨辉三角形的规律)