13-1.程式設計。請列舉一些面對物件程式設計與傳統舊的程式設計形式相比的先進之處。
任何抽象的本質都是忽略,oo剛好是其中一種
13-2.函式和方法的比較。函式和方法之間的區別是什麼?
從定義的角度上看,我們知道函式(function)就相當於乙個數學公式,它理論上不與其它東西關係,它只需要相關的引數就可以。所以普通的在module中定義的稱謂函式是很有道理的。
那麼方法的意思就很明確了,它是與某個物件相互關聯的,也就是說它的實現與某個物件有關聯關係。這就是方法。雖然它的定義方式和函式是一樣的。也就是說,在class定義的函式就是方法
13-3.對類進行定製。寫乙個類,用來將浮點型值轉換為金額。
importreclass
moneyfmt(object):
def__init__(self,value = 0.0):
self.mvalue =value
defdollarize(self):
val = round(self.mvalue,2)
strval = str(val).split('.'
)[0]
strlen =len(strval)
num = strlen%3ele1 =strval[:num]
ele2 =strval[num:]
l = re.findall(r'.'
, ele2)
newstr =ele1
for i in
l:
if num ==0:
newstr =str(i)
num += 1
else
: newstr = newstr + '
,' +str(i)
return'$
' + newstr + '
.' + str(val).split('
.')[1]
def__nonzero__
(self):
if self.mvalue ==0:
return
false
else
:
return
true
def__str__
(self):
return
self.dollarize()
def__repr__
(self):
repr = str
13-7.資料類。提供乙個time模組的介面,允許使用者按照自己給定的時間格式來檢視日期。你的類應該維護乙個日期值,並用給定的時間建立乙個例項,如果沒有給出時間值,程式執行時會預設採用當前的系統時間。
importtime
class
timeformat(object):
def__init__(self,t =time.time()):
self.mytime =t
def update(self,t =time.time()):
self.mytime =t
def display(self,types =none):
l = time.strftime('
%y-%m-%d
',time.localtime(self.mytime))
ele = l.split('-'
) day = ele[2]
mon = ele[1]
year =ele[0]
if types == '
mdy'
:
print(mon + '
/' + day + '
/' + year[-2:])
elif types == '
mdyy':
print(mon + '
/' + day + '
/' +year)
elif types == '
dmy'
:
print(day + '
/' + mon + '
/' + year[-2:])
elif types == '
dmyy':
print(day + '
/' + mon + '
/' +year)
elif types == '
modyy':
print(mon + '
' + day + '
, ' + year)
13-8.堆疊類。實現乙個堆疊類,類中應該有push()和pop()方法,還有乙個isempty()方法,如果堆疊是空的,返回布林值1,否則返回0。
classstack(object):
def__init__(self,l =):
self.list =l
defisempty(self):
if len(self.list) ==0:
return
false
else
:
return
true
defpeek(self):
if self.isempty() ==false:
print('
堆為空'
)
else
:
return self.list[-1]
defpush(self,ele):
defpop(self):
if self.isempty() ==false:
print('
堆為空'
)
elif
'pop'in
dir(self.list):
pass
else
: self.list.remove(self.peek())
defviewstack(self):
print(self.list)
13-9.佇列類。實現乙個佇列類,這個類必須支援下面幾種方法:enqueue()在佇列的尾部加入乙個新的元素,dequeue()在佇列的頭部取出乙個元素,返回它並且把它從列表中刪除。
略13-10.堆疊和佇列。編寫乙個類,定義乙個能夠同時具有堆疊和佇列操作行為的資料結構。這個類和perl語言中陣列相像。需要實現四個方法。
略13-11.電子商務。你需要為一家b2c零售商編寫乙個基礎的電子商務引擎。你需要寫乙個針對顧客的類user,乙個對應存貨清單的類item,還有乙個對應購物車的類叫cart。貨物放到購物車裡,顧客可以有多個購物車。同時購物車裡可以有多個貨物,包括多個同樣的貨物。
《Python核心程式設計(第二版)》 導讀
歡迎走進python核心程式設計 我們很高興能幫你盡快並盡可能深入地學習python。掌握語法是本書的乙個目標,不管怎樣,我們都堅信,哪怕是乙個初學者,只要他能掌握python的運作機理,他就不再僅僅是用python 編寫 而是能開發出更高效的python應用程式。但是你知道,並不是掌握了一門語言的...
Python核心程式設計第二版 第十章課後答案
10.1 引發異常。以下的哪個因素會在程式執行時引發異常?注意這裡我們問的並不是異常 的原因。a 使用者 b 直譯器 c 程式 d 以上所有 e 只有 b 和 c f 只有 a 和 c f 10 2.引發異常。參考上邊問題的列表,哪些因素會在執行互動直譯器時引發異常?f 10 3.關鍵字。用來引發異...
python核心程式設計(第二版) 課後習題
python核心程式設計課後習題 第二版 部分課後習題 這些都是自己寫的,有兩個或三個檔案沒有完成,不想寫了 其中x.x.py是書中的例子習題 書中有很多錯誤,在我的檔案中都已經修改除錯好了 x x.py是課後習題 第乙個x是章節,第二個x是編號,有的也有檔名 檔案列表 5 10.py 5 11.p...