[D-353]Python 7/100天_练习6

==今天的课题
课本:https://reurl.cc/ROvEv6
练习6:打印杨辉三角。
起手式餵狗https://tinyurl.com/2fumwa3m
想法:
写一个for迴圈,印一个[1]的串列,每次印都会append一个1
像这样

str1=[1]for i in range(1,20,2):    str1.append(1)    print(str(str1).center(50," "))

或insert?

str1=[1]for i in range(1,10,1):    str1.insert(-1,i)    print(str(str1).center(50," "))

发现问题
1.列表会自己变长,导致index out of range
2.每一项的规律要相同
==凌晨五点,想code想到睡不着
还真没想过自己的人生有一天会为了这种事失眠
总之我想到一些规律
其一
y[1]=x[0]+x[1]
y[2]=x[1]+x[2]
y[i]=x[i-1]+x[i]
x为前一个list,要实现这个大概要用两个for包在一起,像99乘法表那样
其二 如果要用前面这个规律做insert,或许要複製旧的串列,运算之后再印出
也许可以利用「list切片之后会形成一个新的複製」这个特性来製作下一列

list1=[]list2=[]for i in range(8):    if i <2:        list1.append(1)        print(list1)    else:        list2=list1        list2.append(1)        for j in range(1,len(list2)-1):            list2[j]=list1[j-1]+list1[j]            print(list2)

这几天运用工作休息的30分钟慢慢写,终于给我写到这样,只差一哩路了
现在的问题卡在:list2在做运算的时候会连list1一起变动,不符合我原先希望的1,2分开
试了一下可能是对于a=b的理解有点问题
简单来说我卡在这个概念:

list1=[]list2=[]for i in range(8):    if i <2:        list1.append(1)        print(list1)    else:        list2= list1[:]        list2+=[1]        for j in range(1,len(list2)-1):            list2[j]=list1[j-1]+list1[j]            print(list2)#问题:卡在深浅複製的问题走不出来

看答案时间

def main():    num = int(input('Number of rows: '))#让使用者决定列数    yh = [[]] * num#初始化list([[]]长度为1)    for row in range(len(yh)):#决定每一列中会有相应个栏位        yh[row] = [None] * (row + 1)#因为row会被len(yh)-1所以要加回来        for col in range(len(yh[row])):            if col == 0 or col == row:                yh[row][col] = 1            else:                yh[row][col] = yh[row - 1][col] + yh[row - 1][col - 1]            print(yh[row][col], end='\t')        print()if __name__ == '__main__':    main()

检讨:
这次是第二次主动认输,跟第一次的差别在于这次没有被降纬打击的感觉,我想是因为程式码都比较能看懂,比较可惜的就是原本在规划问题的时候其实有想到用list1[][]的方向来做这题,但是一直觉得不太可能所以后来就往b[]=a[]+a[]的方向去做
另外一个不舒服的地方就是这次又想太久了,可惜浪费掉的时间
中间甚至一度产生了放弃的念头,但回头看看自己写了多少东西,就觉得还是可以再试一下,毕竟就是学新东西,挫折难免嘛

额外学到的小撇步:
1.建立[[]]时长度为1


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章