基本思路:對列表進行封裝和二次開發,通過在列表尾部追加和刪除元素來模擬棧的入棧和出棧操作。如果棧內部封裝的列表中元素數量達到容量的限制則表示已滿,如果列表為空則表示棧已空。改變棧的大小時,如果新的大小比棧中已有的元素數量還小,則拒絕該操作。
class
stack
:#構造方法
def__init__
(self,maxlen =10)
: self._content =
self._size = maxlen
self._current =
0#析構方法,釋放列表控制項
def__del__
(self)
:del self._content
#清空棧中的元素
defclear
(self)
: self._content =
self._current =
0#測試棧是否為空
defisempty
(self)
:return
not self._content
#修改棧的大小
defsetsize
(self,size)
:#不允許修改棧後的大小小於已有元素的數量
if size < self._current:
print
('new size must >='
+str
(self._current)
)return
self._size = size
#測試棧是否已滿
defisfull
(self)
:return self._current == self._size
#入棧defpush
(self,v)
:if self._current < self._size:
#在列表尾部追加元素
#在棧中元素個數加1
self._current +=
1else
:print
('stack full'
)#出棧
defpop
(self)
:if self._content:
#棧中元素個數減1
self._current -=
1#彈出並返回列表尾部元素
return self._content.pop(
)else
:print
('stack is empty'
)def
__str__
(self)
:return
'stack('
+str
(self._content)
+',maxlen='
+str
(self._size)
+')'
#復用__str__方法的**
__repr__ = __str__
python迴圈 綜合案例1
一 使用者輸入乙個3位數字,判斷其是否為水仙花數。要求 1.驗證是否為三位數 暫不考慮非數字情況 2.判斷是否是水仙花數 以下 為自己先寫出來的。while true num input 請輸入乙個三位整數 這一步是判斷是否為三位數,整除只要百位不為0,就是三位數。這種方法是基於對字串長度的判斷。i...
python迴圈 綜合案例2
給乙個數值,讓使用者猜測 要求 1.數值相等,表示輸入正確,程式結束 2.如果不相等,則提示大了,還是小了。繼續讓使用者輸入 給乙個數值,讓使用者猜測 要求 1.數值相等,表示輸入正確,程式結束 2.如果不相等,則提示大了,還是小了。繼續讓使用者輸入 shuzi 1000 count 0 while...
VRRP的綜合案例
需求 1.pc 1屬於vlan10 網段為 192.168.10.0 24 2.pc 2屬於vlan20 網段為 192.168.20.0 24 3.vlan 10 執行 vrrp 形成虛擬閘道器 192.168.10.254 r1是主閘道器,r2是備份閘道器 4.vlan 20 執行 vrrp 形...