Time of Update: 2018-12-05
本部落格列出的答案不是來自官方資源,是我自己做的練習,可能有誤。9-1.檔案過濾。顯示一個檔案的所有行,忽略以井號(#)開頭的行。這個字元被用做Python,Perl,Tcl,等大多數指令檔的注釋符號。附加題:處理不是第一個字元開頭的注釋。【答案】(a)代碼如下:fobj = open('c:\Python Test\P_1.txt')for eachLine in fobj: if eachLine[0] != '#': print eachLine,fobj.close(
Time of Update: 2018-12-05
Python具有強大的擴充能力,我列出了50個很棒的Python模組,包含幾乎所有的需要:比如Databases,GUIs,Images, Sound, OS interaction, Web,以及其他。推薦收藏。 Graphical interface wxPython http://wxpython.org Graphical interface pyGtk http://www.pygtk.org Graphical interface pyQT
Time of Update: 2018-12-05
3-1.標識符。為什麼Python中不需要變數名和變數型別宣告?【答案】這部分答案是網上找到的。Python語言中對象的類型和記憶體都是運行時確定的。在建立也就是賦值時,解譯器會根據文法和右側的運算元來決定新對象的類型。因為變數在第一次賦值的時候就被自動聲明了。Python是無類型的語言。
Time of Update: 2018-12-05
和大家分享自己完成的《Python核心編程》答案。因為不是來自官方資源,是自己的的練習,可能有誤或者並非最好的解決辦法。5-16.家庭財務。給定一個初始金額和月開銷數,使用迴圈,確定剩下的金額和當月的支出數,包括最後的支出數。Payment()函數會用到初始金額和月額度,輸出結果應該類似下面的格式(例子中的數字僅用於示範)。Enter opening balance: 100.00Enter monthly payment: 16.13 Amount
Time of Update: 2018-12-05
本部落格列出的答案不是來自官方資源,是我自己做的練習,如果有疑問或者錯誤,歡迎討論。11-12.
Time of Update: 2018-12-05
6-16.矩陣。處理矩陣M和N的加和乘操作。【答案】(a)M和N的加作業碼如下:def matrix_input(string, m, n): matrix = [] a = string.split(',') for i in range(m * n): matrix.append(a[i]) return matrix def matrix_display(matrix, m, n): for i in range(m):
Time of Update: 2018-12-05
3-10.異常。使用類似readTextFile.py中異常處理的方法取代makeTextFile.py中對os.path.exists()的調用。反過來,用os.path.exists()取代readTextFile.py中的異常處理方法。【答案】代碼如下:def makeTextFile(): import os ls = os.linesep # get filename while True: fname =
Time of Update: 2018-12-05
《Python核心編程》第二版第18頁第一章練習這裡列出的答案不是來自官方資源,是我自己做的練習,可能有誤。1.9 練習1-1.安裝Python。請檢查Python是否已經安裝到你的系統上,如果沒有,請下載安裝它。【答案】略。1-2.執行Python。有多少種運行Python的不同方法?你喜歡哪一種?為什嗎?【答案】命令列上的互動解譯器:就是Python(command line)。另外,也可以從命令列啟動指令碼。整合式開發環境:Python自己就帶一個IDLE(Python
Time of Update: 2018-12-05
和大家分享自己完成的《Python核心編程》習題答案。因為不是來自官方資源,是自己的的練習,可能有誤或者並非最好的解決辦法。【推薦】推薦博文:牛B的Python模組http://www.cnblogs.com/chu888chu888/archive/2011/01/09/1931084.html【推薦】推薦博文:Python核心編程練習第六章,別人做的練習http://blog.csdn.net/killua_hzl/archive/2010/05/31/5637828.aspx【推薦】推薦博
Time of Update: 2018-12-05
8-1.條件陳述式。請看下面的代碼:# statement Aif x > 0: # statement B passelif x < 0: # statement C passelse: # statement D pass# statement
Time of Update: 2018-12-05
下面的問題涉及了makeTextFile.py和readTextFile.py指令碼。【注】網路上找到的makeTextFile.py和readTextFile.py原始碼,和原書例子稍有區別。'makeTextFile.py -- create text file'import os# get filenamewhile True: fname = raw_input('Enter file name: ') if os.path.exists(fname):
Time of Update: 2018-12-05
6-7.調試。看一下在例6.5中給出的代碼(buggy.py)(a)研究這段代碼並描述這段代碼想做什麼。在所有的(#)處填寫你的注釋。(b)這個程式有一個很大的問題,比如輸入6、12、20、30等它會死掉,實際上它不能處理任何的偶數,找出原因。(c)修正(b)中提出的問題。例6.5 有bug的程式(buggy.py)這是一個用於練習6-7的程式,判斷這個程式是幹什麼的,在“#”處添加你的注釋,找出其中的錯誤,並修改之。num_str = raw_input('Enter a number: ')
Time of Update: 2018-12-05
7-1.字典方法。哪個字典方法可以用來把兩個字典合并到一起。【答案】dict.update(dict2)將字典dict2的鍵-值對添加到字典dict7-2.字典的鍵。我們知道字典的值可以是任意的Python對象,那字典的鍵又如何呢?請試著將除數字和字串意外的其他不同類型的對象作為字典的鍵,看看哪些類型可以,哪些不行。對那些不能作為字典的鍵的物件類型,你認為是什麼原因呢?【答案】Python對象:可雜湊對象(不變類型)---數字,字串和元組(但要加以限制)不可雜湊對象(可變類型)--列表,字典,集
Time of Update: 2018-12-05
6-5.字串。(a)更新你在練習2-7裡面的方案,使之可以每次向前向後都顯示一個字串的一個字元。(b)通過掃描來判斷兩個字串是否匹配(不能使用比較操作符或者cmp()內建函數)。附加題:在你的方案裡加入大小寫區分。(c)判斷一個字串是否重現(後面跟前面一致)。附加題:在處理除了嚴格的迴文之外,加入對例如控制符號和空格的支援。(d)接受一個字串,在其後面加一個反向的拷貝,構成一個迴文字串。【參考】2-7.迴圈和字串。從使用者那裡接受一個字串輸入,然後逐字元顯示該字串。先用while迴圈實現,然後再
Time of Update: 2018-12-05
11-14. 遞迴。我們也來看下在第8章中的費伯納西數列。重寫你先前計算費伯納西數列的解(練習8-9)以便你可以使用遞迴。 【答案】本文來自部落格園balian 代碼如下:#-*- encoding: utf-8 -*-def fibonacci(n): "該函數能產生數列的第n個值" returnn >= 2 and fibonacci(n - 2) + fibonacci(n - 1) or n# From
Time of Update: 2018-12-05
6-4.算術。更新上一章裡面你的得分測試聯絡方案,把測試得分放到一個列表中去。你的代碼應該可以計算出一個平均分,見練習2-9和5-3。【參考】練習2-9.迴圈和操作符。建立一個包含五個固定數值的列表或元組,輸出他們的平均值。本練習的痛點之一是通過除法得到平均值。你會發現整型除會截去小數,因此你必須使用浮點除以得到更精確的結果。float()內建函數可以協助你實現這一功能。【參考】練習5-3.標準類型操作符。寫一段指令碼,輸入一個測驗成績,根據下面的標準,輸出他的評分成績(A-F)。A:90~10
Time of Update: 2018-12-05
本部落格列出的答案不是來自官方資源,是我自己做的練習,如果有疑問或者錯誤,歡迎討論。 原書(英文版)作者的blog http://wescpy.blogspot.ca/11-7. 用map()進行函數式編程。給定一對同一大小的列表,如[1, 2, 3, ...]和['abc', 'def', 'ghi', ...],將兩個列表歸併為一個由每個列表元素組成的元組的單一列表,以使我們的結果看起來像這樣:{[(1, 'abc'), (2, 'def'), (3, 'ghi'), ...
Time of Update: 2018-12-05
本部落格列出的答案不是來自官方資源,是我自己做的練習,如果有疑問或者錯誤,歡迎討論。11-1. 參數。比較下面3個函數: def countToFour1(): for eachNum in range(5): print eachNumdef countToFour2(n): for eachNum in range(n, 5): print eachNumdef countToFour3(n=1):
Time of Update: 2018-12-05
4-1.Python對象。與所有Python對象有關的三個屬性是什嗎?請簡單的描述一下。【答案】所有的Python對象都擁有三個特性:身份,類型和值。身份:每一個對象都有一個唯一的身份標識自己,任何對象的身份可以使用內建函數id()來得到。這個值可以被認為是該對象的記憶體位址。類型:對象的類型決定了該對象可以儲存什麼類型的值,可以進行什麼樣的操作,以及遵循什麼樣的規則。可以使用內建函數type()查看對象的類型。在Python中類型也是對象。值:對象表示的資料項目。4-2.類型。不可更改(imm
Time of Update: 2018-12-05
7-3.字典和列表的方法。(a)建立一個字典,並把這個字典中的鍵按照字母順序顯示出來。(b)現在根據已經按照字母順序排列好的鍵,顯示出這個字典中的鍵和值。(c)同(b),但這次是根據已按照字母順序排序好的字典的值,顯示出這個字典中的鍵和值(注意:對字典和雜湊表來說,這樣做一般沒什麼實際意義,因為大多數訪問和排序(如果需要)都是基於字典的鍵,這裡只把它作為一個練習)。【答案】(a)代碼如下:>>> my_dict = {'a': 4, 'b': 3, 'c': 2, 'd': 1