建立乙個類,類當中的物件具有相同的屬性和方法,這裡建立乙個棧,棧內元素共同的特點就是先進後出
# 定義乙個class
class
stack
:# slist是成員變數,被類當中的所有成員函式可見
def__init__
(self, slist)
: self.slist = slist
# 輸出最上面的值
defstackpop
(self)
:#pop可以直接疊加,不需要賦值了
return self.slist.pop(self.getstacklen()-
1)defgetstacklen
(self)
:# 長度
return
len(self.slist)
defstackpush
(self, new_element)
:# 加入乙個新元素,該新元素會進入最上面
defifemptystack
(self)
:# 需要check是否為空
if self.slist:
return
0else
:return
1def
stackpeek
(self)
:# see the front one
return self.slist[self.getstacklen()-
1]defgetstacklist
(self)
:return self.slist
# import上面的函式
from stack import
*#定義乙個新的類,之後可能要用
class
queue
:# see above
def__init__
(self, stack_a, stack_b)
: self.stack_a = stack_a
self.stack_b = stack_b
defenqueue
(self, new_element)
: self.stack_a.stackpush(new_element)
# 將stacka中的元素放入stackb中並輸出,從而使得輸出的順序和輸入的順序一致
defdequeue
(self)
:if self.stack_b.ifemptystack()==
0:return self.stack_b.stackpop(
)else
: a_len = self.stack_a.getstacklen(
)for i in
range
(a_len)
:# a to b
self.stack_b.stackpush(self.stack_a.stackpop())
return self.stack_b.stackpop(
)def
isemptyqueue
(self)
:if self.stack_a.ifemptystack(
)+ self.stack_b.ifemptystack()==
0:return
1else
:return
0def
getqueuelen
(self)
:if self.stack_a.ifemptystack()==
1:return self.stack_b.getstackpeek(
)else
: a_len = self.stack_a.getstacklen(
)for i in
range
(a_len)
: self.stack_b.stackpush(self.stack_a.stackpop())
return self.stack_b.stackpeek(
)def
getstackinqueue
(self)
:return
[self.stack_a.getstacklist(
), self.stack_b.getstacklist(
)]
Python 學習筆記 5
今天從25章開始 p652 學習 python 的 oop 用 看起來更直觀 class class a def init self,value 建構函式 self.data value def add self,other 運算子過載 return class a self.data other ...
Python學習筆記5
列表與元組的區別 sort sort reverse true 對元素進行排序,預設是公升序,小值在前面,後面那種形式是降序,小值在後面 reverse 反轉列表的順序 count value 返回value的出現次數 index value 返回value第一次出現的位置編號 insert i,v...
Python學習筆記 5
模組 用來從邏輯上組織python 包括變數,函式,類,邏輯等,來實現乙個功能。本質就是乙個python檔案。包 從邏輯上組織模組。必須帶有乙個init.py檔案 匯入方式 import module import module1,module2 from module import 不建議用 fr...