- Python自動化運維快速入門
- 鄭征
- 1073字
- 2019-12-09 14:48:16
1.6 多個例子實戰Python編程
本節通過幾個實用的例子來復習Python語法。
1.6.1 實戰1:九九乘法表
本例技術點:打印小學乘法口訣表(練習for循環、字符串格式化)。
我們看到的九九乘法口訣表一般如圖1.33所示。

圖1.33 九九乘法口訣表
第一步:定義乘數x,即每一行中不變的那個數;定義被乘數y,即每一行的乘以乘數x,依次遞增1,但不超過x的數。
第二步:print被乘數、乘數、積的相關信息,當乘數增加1時,輸出一個換行。
第三步:格式化輸出最大長度為6的字符串,右補空格,以顯示整齊。
代碼如下(example_99.py):

保存為99.py,在命令窗口輸入python example_99.py,運行結果如圖1.34所示。

圖1.34 運行結果
1.6.2 實戰2:發放獎金的梯度
企業發放的獎金根據利潤提成,利潤(I)低于或等于10萬元時,獎金可提10%;利潤高于10萬元低于20萬元時,低于10萬元的部分按10%提成,高于10萬元的部分可提成7.5%;20萬元到40萬元之間時,高于20萬元的部分可提成5%;40萬元到60萬元之間時,高于40萬元的部分可提成3%;60萬元到100萬元之間時,高于60萬元的部分可提成1.5%;高于100萬元時,超過100萬元的部分按1%提成。計算給定的利潤I,應發獎金總數。
本例技術點:利用數組(列表)來分界和定位。
代碼如下(reward_demo.py):

執行python reward_demo.py依次輸入利潤數據,結果如圖1.35所示。

圖1.35 運行結果
通過本例,我們可以練習Python的輸入輸出、列表的運用、continue的作用、列表推導式等。
1.6.3 實戰3:遞歸獲取目錄下文件的修改時間
列出某一文件目錄下的所有文件(包括其子目錄文件),打印修改時間,距當前時間有幾天幾時幾分。
本例技術點:使用標準庫os模塊的os.walk方法,使用datetime模擬計算時間差。
代碼如下:

將上述代碼保存為example_fileModifiedTime.py,在命令窗口執行python example_fileModifiedTime.py,運行結果如圖1.36所示。

圖1.36 運行結果
本例稍做修改可以用于運維自動刪除N天前的文件,讀者可自行實踐。
1.6.4 實戰4:兩行代碼查找替換3或5的倍數
列出1~20的數字,若是3的倍數就用apple代替,若是5的倍數就用orange代替,若既是3的倍數又是5的倍數,就用appleorange代替。注意,只能使用兩行代碼。
本例技術點:若是一般的思路,則肯定是一個for循環,再加上if else等操作。本例的目的是練習使用字符串的切片操作,代碼及運行結果如圖1.37所示。

圖1.37 兩行代碼實現
其實算法很簡單,就是i對3和5取余,如果為0,則從下標0*5=0開始切片,就取到了apple;如果余數不為0,則最小是從下標1*5=5開始切片,就取到字符串為空。即“apple”[5:]的結果為空。最后使用了or關鍵字,print(A or B)的含義:如果A為True,則結果為True;當A是False再判斷B,如果B是True,則結果是True。
1.6.5 實戰5:一行代碼的實現
本例要求使用一行代碼就實現實例4的運行結果。
本例技術點:學習使用列表推導式及字符串與列表的join操作。
代碼及運行結果如圖1.38所示。

圖1.38 一行代碼實現
- PostgreSQL技術內幕:事務處理深度探索
- 深入理解Java7:核心技術與最佳實踐
- Hands-On C++ Game Animation Programming
- 手把手教你學C語言
- 微服務從小白到專家:Spring Cloud和Kubernetes實戰
- Node Cookbook(Second Edition)
- INSTANT Yii 1.1 Application Development Starter
- Python網絡爬蟲技術與應用
- ASP.NET Web API Security Essentials
- Python 快速入門(第3版)
- Laravel Design Patterns and Best Practices
- VMware vSphere 5.5 Cookbook
- Visual FoxPro程序設計習題及實驗指導
- Java EE 7 Development with WildFly
- C語言程序設計實驗指導與習題精解