本文實(shí)例分析了Python減少循環(huán)層次和縮進(jìn)的技巧。分享給大家供大家參考,具體如下:
我們知道Python中冒號(hào)和縮進(jìn)代表大括號(hào),這樣寫已經(jīng)可以節(jié)省很多代碼行數(shù),但是可以更優(yōu)化,盡可能減少循環(huán)的層次和縮進(jìn),讓代碼看起來(lái)更簡(jiǎn)潔,邏輯更清楚。不僅Python語(yǔ)言如此,其他語(yǔ)言也一樣。
如圖,是兩段Python代碼,前后兩段要實(shí)現(xiàn)的功能是一樣的,但是第二段明顯可讀性更好,邏輯更佳清晰。在很多循環(huán)嵌套的時(shí)候,其實(shí)可以用“逆向思維”,用continue跳出不符合條件的循環(huán),而不是成立的時(shí)候繼續(xù)執(zhí)行,這樣只會(huì)不斷加深循環(huán)的層次。
下面是圖示中的Python代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
"""優(yōu)化前""" for item in items: if is_for_sale(item): cost = compute_cost(item) if cost < = wallet.money: buy(item) """優(yōu)化后""" for item in items: if not is_for_sale(item): continue cost = compute_cost(item) if cost > wallet.money: continue buy(item) |
這樣做減少了循環(huán)嵌套的層次,使可讀性和邏輯性更直觀,也沒(méi)有那么多縮進(jìn)。
轉(zhuǎn)自:小談博客 http://www.tantengvip.com/2015/05/python-for-level/
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。