Python通過類的組合模擬街道紅綠燈

2021-10-09 12:37:35 字數 1204 閱讀 3489

一,紅綠燈揭示板案例思路

1. 建立traffic_light紅綠燈類

(1)靜態屬性 :

<1> 綠燈時間,<2> 黃燈時間 , <3> 紅燈時間, <4> 兩塊顯示時間的電子屏

(2)動態屬性

<1> 輸入紅黃綠時間函式(靜態函式),<2> 紅黃綠時間倒計時函式 ,

<3> 構造電子屏數字的顯示函式,<4> 顯示兩塊電子屏繫結兩位數的顯示函式

<5> 例項化物件展示電子屏函式

2. 電子屏類的建立(light): 

python中沒有陣列,因此自己建立函式把獲取到的值存放到陣列中

(存放內容: 20行,10列的布林值)

3. input_time(color:str)函式的建立

<1> 匯入colorama包並初始化實現windows命令列下顏色字型列印效果

<2> 輸入紅黃綠時間的字型成對應的顏色

<3> 通過colorama類方法實現輸入的紅黃綠時間為對應的顏色展示

<4> 對輸入的數字進行校驗(必須為1-99之間的正數。因為一塊電子屏只記錄一位數字)

<5> 返回相應的值

4. countdown數字倒計時函式的建立 

<1> 通過while迴圈讓三個燈的狀態一直迴圈持續

<2> 對於紅黃綠燈輸入的數字進行遞減列印流程如下

#流程: 清屏-->列印完後 -->暫停1秒鐘-->清屏 -->數字減一後再列印-->再暫停1秒鐘-->清屏-->再數字減一列印

<3> 匯入time,os,colorama等需要的包

5.build_led_number函式的建立 

之前建立的電子屏是預設false的狀態。分別構造0-9的狀態在電子屏中true的狀態的顯示

6.print_led函式的建立

兩塊電子屏,分別顯示輸入時間的第一位和第二位數字.如果數字為單數則前面用零補齊的方法顯示。兩塊屏併排顯示每一位數字,從而展示電子版的效果

7.注意事項:

因為我們用到了os,及colorama類。所以最終效果的展示不是在pycharm中展示。而是在windows的cmd命令列中展示。

原因是因為我們**中呼叫了os.system("cls")這個清屏命令。在pycharm中是很難做到清屏的效果。

另外在pycharm中對於電子屏的展示效果也不如windows cmd中展示的效果俱佳。因此執行程式是請在windows命令列中執行。

二,紅綠燈揭示板**的呈現

通過python模擬SSH

通過python模擬ssh from time import import paramiko 定義乙個類,表示一台遠端linux主機 class linux object 通過ip,使用者名稱,密碼,超時時間初始化乙個遠端linux主機 def init self,ip,username,passw...

python的類的組合

一 定義 組合 為乙個類的物件封裝屬性,這個屬性是另乙個類的例項 二 組合舉例 1 模擬遊戲類 要求 1 建立乙個任務角色類gamerole,構造方法中封裝三個屬性 name,ad 攻擊力 hp 血量 2 gamerole類中定義乙個方法attack 例項化兩個物件以及互相攻擊的功能 3 建立乙個工...

關於python類的組合

關於python類的組合,絞盡腦汁之後,寫了乙個生活中的簡單例子,有需要的童鞋可以理解下,水平有限,不對的地方望指正 coding utf 8 class engine 某發動機廠家描述發動機物件 definit self,enginenumber,horsepower self.enginenum...