我們知道Python中冒號和縮進代表大括號,這樣寫已經可以節省很多代碼行數,但是可以更優化,盡可能減少循環的層次和縮進,讓代碼看起來更簡潔,邏輯更清楚。不僅Python語言如此,其他語言也一樣。
如圖,是兩段Python代碼,前後兩段要實現的功能是一樣的,但是第二段明顯可讀性更好,邏輯更佳清晰。在很多循環嵌套的時候,其實可以用“逆向思維”,用continue跳出不符合條件的循環,而不是成立的時候繼續執行,這樣只會不斷加深循環的層次。
下面是圖示中的Python代碼:
"""優化前"""
for item in items:
if is_for_sale(item):
cost = compute_cost(item)
if cost <= wallet.money:
buy(item)
"""優化後"""
for item in items:
if not is_for_sale(item):
continue
cost = compute_cost(item)
if cost > wallet.money:
continue
buy(item)
這樣做減少了循環嵌套的層次,使可讀性和邏輯性更直觀,也沒有那麼多縮進。