python類的學習 5 綜合案例解析

2021-10-03 15:46:50 字數 1534 閱讀 2381

基本思路:對列表進行封裝和二次開發,通過在列表尾部追加和刪除元素來模擬棧的入棧和出棧操作。如果棧內部封裝的列表中元素數量達到容量的限制則表示已滿,如果列表為空則表示棧已空。改變棧的大小時,如果新的大小比棧中已有的元素數量還小,則拒絕該操作。

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 形...