【和孩子一起學編程】 python筆記--第四天
第十一章:
可變循環
newStars = int(input("how many stars do you want?")) for i in range(newStars): print("*") #輸出: #how many stars do you want? 3 #* #* #*
可變嵌套循環
newline = int(input("how many lines do you want?")) newStars = int(input("how many stars do you want?")) for j in range(newline): for i inrange(newStars): print(‘*‘)
長代碼行:用反斜杠(\)或者加小括號()
lines = ‘a‘+‘b‘+ ‘c‘ + ‘d‘ + ‘e‘ + ‘f‘ lines = (‘a‘+‘b‘+ ‘c‘ + ‘d‘ + ‘e‘ + ‘f‘)
十二章:列表
創建一個空列表
newList = []
向空列表裏追加內容:
調用函數.append()
newList = [] newList.append(‘abc‘) print(newList)
向列表追加元素之前,必須現有列表,追加的元素在列表最末尾
列表裏的元素類型可以是多樣的,包括數字,字符串,對象,其他列表
列表有點像是c中的數組
查找列表中的元素:
newList=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘] print(newList[3]) #輸出為:’d‘
列表分片:
newList=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘] print(newList[1:4])
#[‘b‘, ‘c‘, ‘d‘]
輸出還是一個列表,列表包含下界不包含上界,和range()一樣,而上面查找輸出的是字符
分片簡寫;
newList=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘] print(newList[1:])#[‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘] 輸出從第二個到結尾
newList=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘] print(newList[:4]) #[‘a‘, ‘b‘, ‘c‘, ‘d‘] 從第一個到第四個 newList=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘] print(newList[:]) #[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘] 輸出整個列表
向列表增加元素的其它方法:
append()只在末尾增加一個元素;
extend()如下:
newList=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘] newList.extend([‘g‘,‘h‘,‘i‘]) print(newList)
insert():
這時append()添加了一個列表[‘f‘,‘g‘,‘h‘]而不是在原列表裏添加三個字符。
刪除列表元素:
remove()、del、pop()
newList=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘] newList.remove(‘a‘) print(newList)
remove()不需要知道元素具體位置,只要知道元素存在即可
del允許利用索引從列表刪除元素:
newList=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘]del newList[3] print(newList)
pop()從列表 取出 最後一個 元素交給你。這說明你可以為它指派一個名字:
newList=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘] new = newList.pop() print(new)
也可以指定列表中的一個元素取出:
newList=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘] new = newList.pop(3) print(new)
搜索列表
in關鍵字:
newList=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘] if ‘a‘ in newList: print(‘exist‘)
‘a‘ in newList 是一個boole表達式,會返回ture或false:
newList=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘] ‘a‘ in newList
# ‘a‘在列表返回ture
# 不在列表裏的返回false
查找索引:
newList=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘] print(newList.index(‘d‘))
#輸出‘d‘在列表中的索引 3
如果列表中沒有這個值,index()會給出一個錯誤,所以最好結合in使用:
newList=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘] if ‘d‘ in newList: print(newList.index(‘d‘))
循環處理列表:
newList=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘] for i in newList: print(i)
列表排序
使用sort()方法:
newList=[‘b‘,‘a‘,‘c‘,‘f‘,‘d‘,‘e‘] newList.sort() print(newList)
sort()方法會自動按照字母順序排序,如果是 數字會按照從小到大排序
sort()會修改原列表,而不是創建一個新的列表
按逆序排序:
1:先正序排好,然後對這個列表逆置(reverse)
newList=[‘b‘,‘a‘,‘c‘,‘f‘,‘d‘,‘e‘] newList.sort() newList.reverse() print(newList)
2:向sort()增加一個參數,直接讓它按降序排序(從大到小)
newList=[‘b‘,‘a‘,‘c‘,‘f‘,‘d‘,‘e‘] newList.sort(reverse = 1) #原書中為reverse = Ture,但是編譯器報錯,說Ture未定義 print(newList)
剛才的排序和逆置都是對原來的列表修改,如果想保留原來的列表,可以用分片記法建立副本
newList=[‘b‘,‘a‘,‘c‘,‘f‘,‘d‘,‘e‘] new = newList[:] new.sort(reverse = 1) print(new)
另一種排序方法:
sorted(),可以得到一個列表的有序副本而不會影響原列表順序
newList=[‘b‘,‘a‘,‘c‘,‘f‘,‘d‘,‘e‘]
new = sorted(newList)
print(newList)
print(new)
可改變和不可改變:
在python中數字和字符串是不可改變的,而列表是可改變的。
有些情況下你可能不希望列表可以改變。
有一個名為元組(tuple)的類型,這就屬於不可改變的列表:
my_tuple = (‘a‘,‘b‘,‘c‘)
這裏使用了圓括號,而不是中括號。
由於元組不可改變,所以不能對元組進行排序、追加、刪除
一旦元組創建,它就會一直保持不變
雙重列表:數據表
類似於c中的二維數組
一種建立雙重列表的方法:
a = [12,23,232,44] b = [1234,3434,4,6] c = [121,222,333,444] d = [a,b,c] for i in d: print(i)
也可以直接創建d
d = [[12,23,232,44],[1234,3434,4,6],[121,222,333,444]] for i in d: print(i)
從表中獲取一個值:
d = [[12,23,232,44],[1234,3434,4,6],[121,222,333,444]] print(d[0][3])
【和孩子一起學編程】 python筆記--第四天