資源簡介
非常經典的Python3教材。英文版是可以復制內容的原版,非掃描版!
中英版對照,學習效果更佳!
附帶源碼供參考!
代碼片段和文件信息
#!/usr/bin/env?python3
#?Copyright?(c)?2008-11?Qtrac?Ltd.?All?rights?reserved.
#?This?program?or?module?is?free?software:?you?can?redistribute?it?and/or
#?modify?it?under?the?terms?of?the?GNU?General?Public?License?as?published
#?by?the?Free?Software?Foundation?either?version?3?of?the?License?or
#?(at?your?option)?any?later?version.?It?is?provided?for?educational
#?purposes?and?is?distributed?in?the?hope?that?it?will?be?useful?but
#?WITHOUT?ANY?WARRANTY;?without?even?the?implied?warranty?of
#?MERCHANTABILITY?or?FITNESS?FOR?A?PARTICULAR?PURPOSE.?See?the?GNU
#?General?Public?License?for?more?details.
“““
>>>?u?=?Stack()
>>>?u.push(1);?u.push(2);?u.push(4)
>>>?str(u)
‘[1?2?4]‘
>>>?u.can_undo
True
>>>?while?u.can_undo:
...?????u.undo()
>>>?str(u)
‘[]‘
>>>?for?x?in?list(range(-5?0))?+??list(range(5)):
...????u.push(x)
>>>?str(u)
‘[-5?-4?-3?-2?-1?0?1?2?3?4]‘
>>>?u.top()
4
>>>?total?=?0
>>>?for?x?in?range(5):
...?????total?+=?u.pop()
>>>?str(u)?total
(‘[-5?-4?-3?-2?-1]‘?10)
>>>?while?u.can_undo:
...?????u.undo()
>>>?str(u)
‘[]‘
>>>?import?os
>>>?import?tempfile
>>>?filename?=?os.path.join(tempfile.gettempdir()?“fs.pkl“)
>>>?fs?=?FileStack(filename)
>>>?for?x?in?list(range(-5?0))?+??list(range(5)):
...????fs.push(x)
>>>?str(fs)
‘[-5?-4?-3?-2?-1?0?1?2?3?4]‘
>>>?fs.top()
4
>>>?total?=?0
>>>?for?x?in?range(5):
...?????total?+=?fs.pop()
>>>?str(fs)?total
(‘[-5?-4?-3?-2?-1]‘?10)
>>>?fs.push(909)
>>>?str(fs)
‘[-5?-4?-3?-2?-1?909]‘
>>>?os.path.basename(fs.filename)
‘fs.pkl‘
>>>?fs.save()
>>>?fs2?=?FileStack(filename)
>>>?str(fs2)
‘[]‘
>>>?fs2.push(-32)
>>>?fs2.can_undo
True
>>>?fs2.load()
>>>?fs2.can_undo
False
>>>?str(fs2)
‘[-5?-4?-3?-2?-1?909]‘
>>>?fs?==?fs2
True
“““
import?abc
import?pickle
class?Undo(metaclass=abc.ABCmeta):
????@abc.abstractmethod
????def?__init__(self):
????????self.__undos?=?[]
????@abc.abstractproperty
????def?can_undo(self):
????????return?bool(self.__undos)
????@abc.abstractmethod
????def?undo(self):
????????assert?self.__undos?“nothing?left?to?undo“
????????self.__undos.pop()(self)
????def?add_undo(self?undo):
????????self.__undos.append(undo)
????def?clear(self):????????#?In?class?Undo
????????self.__undos?=?[]
class?Stack(Undo):
????def?__init__(self):
????????super().__init__()
????????self.__stack?=?[]
????@property
????def?can_undo(self):
????????return?super().can_undo
????def?undo(self):
????????super().undo()
????def?push(self?item):
????????self.__stack.append(item)
????????self.add_undo(lambda?self:?self.__stack.pop())
????def?pop(self):
????????item?=?self.__stack.pop()
????????self.add_undo(lambda?self:?self.__stack.append(item))
????????return?item
????def?top(self):
????????assert?self.__stack?“Stack?is?empty“
????????return?self.__stack[-1]
????def?__str__(self):
????????return?str(self.__stack)
cla
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????3530699??2018-03-17?22:37??Python3程序開發指南\Programming?in?Python?3.pdf
?????文件???????4814??2011-09-01?11:18??Python3程序開發指南\py30eg\Abstract.py
?????文件???????5545??2011-09-01?11:18??Python3程序開發指南\py30eg\Account.py
?????文件???????2078??2011-09-01?11:18??Python3程序開發指南\py30eg\Appliance.py
?????文件???????1722??2011-09-01?11:18??Python3程序開發指南\py30eg\Ascii.py
?????文件???????5296??2011-09-01?11:18??Python3程序開發指南\py30eg\Atomic.py
?????文件???????1261??2011-09-01?11:18??Python3程序開發指南\py30eg\average1_ans.py
?????文件???????1822??2011-09-01?11:18??Python3程序開發指南\py30eg\average2_ans.py
?????文件???????1338??2011-09-01?11:18??Python3程序開發指南\py30eg\awfulpoetry1_ans.py
?????文件???????1623??2011-09-01?11:18??Python3程序開發指南\py30eg\awfulpoetry2_ans.py
?????文件???????1778??2011-09-01?11:18??Python3程序開發指南\py30eg\ba
?????文件???????5466??2011-09-01?11:18??Python3程序開發指南\py30eg\BibTeX.py
?????文件???????1944??2018-03-27?23:51??Python3程序開發指南\py30eg\bigdigits.py
?????文件???????2014??2011-09-01?11:18??Python3程序開發指南\py30eg\bigdigits_ans.py
?????文件??????10247??2011-09-01?11:18??Python3程序開發指南\py30eg\BikeStock.py
?????文件??????10396??2011-09-01?11:18??Python3程序開發指南\py30eg\BikeStock_ans.py
?????文件???????9501??2011-09-01?11:18??Python3程序開發指南\py30eg\BinaryRecordFile.py
?????文件???????5420??2011-09-01?11:18??Python3程序開發指南\py30eg\BinaryRecordFile_ans.py
?????文件???????1679??2011-09-01?11:18??Python3程序開發指南\py30eg\Block.py
?????文件???????5087??2011-09-01?11:18??Python3程序開發指南\py30eg\BlockOutput.py
?????文件??????15192??2011-09-01?11:18??Python3程序開發指南\py30eg\blocks.py
?????文件??????13355??2011-09-01?11:18??Python3程序開發指南\py30eg\bookmarks-tk.pyw
?????文件??????16598??2011-09-01?11:18??Python3程序開發指南\py30eg\bookmarks-tk_ans.pyw
?????文件???????3042??2011-09-01?11:18??Python3程序開發指南\py30eg\bookmarks.py
?????文件????????329??2011-09-01?11:18??Python3程序開發指南\py30eg\capture.py
?????文件???????5047??2011-09-01?11:18??Python3程序開發指南\py30eg\car_registration.py
?????文件???????6202??2011-09-01?11:18??Python3程序開發指南\py30eg\car_registration_ans.py
?????文件???????7204??2011-09-01?11:18??Python3程序開發指南\py30eg\car_registration_server.py
?????文件???????7874??2011-09-01?11:18??Python3程序開發指南\py30eg\car_registration_server_ans.py
?????文件???????9560??2011-09-01?11:18??Python3程序開發指南\py30eg\CharGrid.py
............此處省略137個文件信息
評論
共有 條評論