官术网_书友最值得收藏!

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 一行代碼實現

主站蜘蛛池模板: 衡东县| 云南省| 邛崃市| 恩施市| 西安市| 盘锦市| 新宾| 金坛市| 嘉峪关市| 拉孜县| 荥经县| 探索| 普兰店市| 云林县| 华池县| 博乐市| 昭平县| 双桥区| 镇赉县| 湘潭市| 班戈县| 武山县| 砚山县| 永丰县| 新闻| 禹城市| 青川县| 凯里市| 额敏县| 龙泉市| 湘乡市| 衡阳县| 那坡县| 错那县| 霍城县| 南江县| 微山县| 东山县| 牡丹江市| 长子县| 新乐市|