think python 2ed_Think Python 2ed 笔记(二)
第六章 ?有返回值的函數
1. 返回值:沒有返回值的函數返回None
2. 增量式開發:增量式開發的目標,是通過每次只增加和測試少量代碼,來避免長時間的調試。該函數的最終版不會在運行時顯示任何東西,僅僅返回一個值。 我們之前寫的print語句在調試時是很有用的,不過在函數能夠正確運行之后,你就該刪了它們。 我們稱這樣的代碼為腳手架代碼(scaffolding), 因為它對程序的構建很有用,但不是最終產品的一部分。
當你剛開始的時候,最好每次只加入一兩行代碼。 隨著經驗見長,你會發現自己可以編寫、調試更大的代碼塊了。 無論哪種方式,增量式開發都能節省你大量的調試時間。這種開發方式的關鍵是:
從一個能運行的程序開始,并且每次只增加少量改動。無論你何時遇到錯誤,都能夠清楚定位錯誤的源頭。
用臨時變量存儲中間值,這樣你就能顯示并檢查它們。
一旦程序正確運行,你要刪除一些腳手架代碼,或者將多條語句組成復合表達式,但是前提是不會影響程序的可讀性。
3. 組合:從一個函數調用另一個函數
4. 布爾函數:布爾函數通常被用于條件語句中
5. 監護人、調試
第七章 迭代
1. while語句:在計算機程序中,重復也被稱為**迭代(iteration)**
2. break:有些時候循環執行到一半你才知道循環該結束了。這種情況下,你可以使用break語句 來跳出循環。while循環的這種寫法很常見,因為你可以在循環的任何地方判斷條件 (而不只是在循環開始),而且你可以積極地表達終止條件(“當出現這個情況是終止”), 而不是消極地表示(“繼續運行直到出現這個情況”)。
第八章 字符串
1. 字符串是一個序列:由字符組成的序列
2. len
3. 使用for循環遍歷
4. 字符串切片
5. 字符串方法:.upper ? ?.find
6. in 運算符:是一個布爾運算符
第十章 列表
1. 列表是一個序列:[? ],一個列表在另一個列表中,稱為**嵌套(nested)列表**,即[…[..]..],嵌套的列表本身還是被看作一個單個元素
2. 列表是可變的:list[0]=333可以索引賦值
3. 遍歷列表:for…in list
4. 列表操作:+運算拼接多個列表;*運算以給定次數重復一個列表
5. 列表切片:list[1:2] ? list[:]
6. 列表方法:list.append()將元素添加到結尾;list1.extend(list2)將一個列表添加到目標列表中;list.sort()對列表中元素進行排列
7. 映射、篩選和歸并:sum(list)求和(稱為“歸并”)
8. 剔除元素:list.pop(1)將list中索引為1的值從list中剔除,返回值是該剔除值;del list[1:2]直接刪除;list.remove(‘b’)在不知道’b’的索引的情況下,將該值從list中剔除。
9. 列表和字符串:list = list(string),list()函數將字符串分割成單獨的字符存入列表中;string.split(分隔符)按照分隔符將string變成列表;’分隔符’.join(list)用分隔符將list組成字符串
10. 對象和值、別名、列表參數(!!注意理解!!)
粗心地使用列表(以及其他可變對象)會導致長時間的調試。 下面列舉一些常見的陷阱以及避免它們的方法:
大多數的列表方法會對參數進行修改,然后返回None。這和字符串方法相反,后者保留原始的字符串并返回一個新的字符串。
如果你習慣這樣寫字符串代碼:
word=word.strip()
那么你很可能會寫出下面的列表代碼:
t=t.sort()# 錯誤!
因為sort返回None,所以你的下一個對t執行的操作很可能會失敗。
在使用list方法和操作符之前,你應該仔細閱讀文檔,然后在交互模式下測試。
選擇一種寫法,堅持下去。
列表的一個問題就是有太多方法可以做同樣的事情。 例如,要刪除列表中的一個元素,你可以使用pop、remove、del甚至是切片賦值。
要添加一個元素,你可以使用append方法或者 + 運算符。假設t是一個列表,x是一個列表元素,以下這些寫法都是正確的:
t.append(x)t=t+[x]t+=[x]
而這些是錯誤的:
t.append([x])# 錯誤!t=t.append(x)# 錯誤!t+[x]# 錯誤!t=t+x# 錯誤!
在交互模式下嘗試每一個例子,保證你明白它們做了什么。 注意只有最后一個會導致運行時錯誤;其他的都是合乎規范的的,但結果卻是錯的。
通過創建拷貝來避免別名.
如果你要使用類似sort這樣的方法來修改參數, 但同時有要保留原列表,你可以創建一個拷貝。
>>>t=[3,1,2]>>>t2=t[:]>>>t2.sort()>>>t[3, 1, 2]>>>t2[1, 2, 3]
在這個例子中,你還可以使用內置函數sorted,它將返回一個新的已排序的列表,原列表將保持不變。
>>>t2=sorted(t)>>>t[3, 1, 2]>>>t2[1, 2, 3]
總結
以上是生活随笔為你收集整理的think python 2ed_Think Python 2ed 笔记(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 邮件发送是html 没样式_使用
- 下一篇: cplex安装_Excel软件规划求解工