《Python核心編程》第二版第407頁第十三章練習 續六 -Python核心編程答案-自己做的-

來源:互聯網
上載者:User

這是自己做的練習,可能有錯誤,歡迎討論和各種最佳化重構方案。
根據反饋,或者code review,對本篇文章答案或者相關內容的更新補充,一般會被添加在本篇部落格的評論中。
將盡量保證每題的答案代碼是完整的,不僅僅是函數或者類,開啟Python 2.7的IDLE,將代碼完整拷貝進去,就能調試運行。
歡迎訪問Balian在部落格園的家。 http://www.cnblogs.com/balian

13-10.
堆棧和隊列。編寫一個類,定義一個能夠同時具有堆棧()和隊列()操作行為的資料結構。這個類和Perl語言中的數組相像。需要實現四個方法:
shift()    返回並刪除列表中的第一個元素,類似於前面的dequeue()函數。
unshift() 在列表的頭部“壓入”一個新元素。
push() 在列表的尾部加上一個新元素,類似於前面的enqueue()和push()方法。
pop() 返回並刪除列表中的最後一個元素,與前面的pop()方法完全一樣。
請參見練習13-8和練習13-9。

【答案】
代碼如下:

#-*- encoding: utf-8 -*-class ArrayPattern(object):    '定義數組模型類'        def __init__(self, arrayList):        self.arrayList = arrayList            def shift(self):        headItem = self.arrayList[0]        print 'Item ', headItem, ' is deleted from the head of array.'        self.arrayList = self.arrayList[1:]        print 'The updated array is: ', self.arrayList, '\n'            def unshift(self, headItem):        tempList = [headItem]        for item in self.arrayList:            tempList.append(item)        self.arrayList = tempList        print 'Item ', headItem, ' is added on the head of array'        print 'The updated array is: ', self.arrayList, '\n'             def push(self, endItem):        self.arrayList.append(endItem)        print 'Item ', endItem, ' is added on the end of array.'        print 'The updated array is: ', self.arrayList, '\n'             def pop(self):        endItem = self.arrayList.pop()        print 'Item ', endItem, ' is poped.'        print 'The updated array is: ', self.arrayList, '\n'                          a_array = ArrayPattern([1, 2, 3, 4, 5, 6, 7, 8])a_array.shift()a_array.unshift(9)a_array.push(10)a_array.pop()
 

【執行結果】

Item  1  is deleted from the head of array.

The updated array is:  [2, 3, 4, 5, 6, 7, 8]

Item  9  is added on the head of array

The updated array is:  [9, 2, 3, 4, 5, 6, 7, 8]

Item  10  is added on the end of array.

The updated array is:  [9, 2, 3, 4, 5, 6, 7, 8, 10]

Item  10  is poped.

The updated array is:  [9, 2, 3, 4, 5, 6, 7, 8]


13-11.

電子商務。

你需要為一家B2C(企業到消費者)零售商編寫一個基礎的電子商務引擎。你需要寫一個針對顧客的類User,一個對應存貨清單的類Item,還有一個對應購物車的類叫Cart。貨物放到購物車裡,顧客可以有多個購物車。同時購物車裡可以有多個貨物,包括多個同樣的貨物。

【未完】

感覺有難度,暫時押後。

13-12.

聊天室。

因為部落格只討論技術,所以題目略有修改,原題請見書第408頁。建立一個新的聊天室。你需要三個類:一個Message類,它包含一個訊息字串以及諸如廣播、單方收件者等其他資訊;一個User類,包含了進入你聊天室的某個人的所有資訊。還有一個Room類,它體現了一個更加複雜的聊天系統,使用者可以在聊天時建立單獨的“房間”,並邀請其他人加入。附加題:請為使用者開發一個圖形化使用者介面應用程式。

【未完】

感覺有難度,暫時押後。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.