Python減少循環(huán)層次和縮進(jìn)的技巧分析
本文實例分析了Python減少循環(huán)層次和縮進(jìn)的技巧。分享給大家供大家參考,具體如下:
我們知道Python中冒號和縮進(jìn)代表大括號,這樣寫已經(jīng)可以節(jié)省很多代碼行數(shù),但是可以更優(yōu)化,盡可能減少循環(huán)的層次和縮進(jìn),讓代碼看起來更簡潔,邏輯更清楚。不僅Python語言如此,其他語言也一樣。

如圖,是兩段Python代碼,前后兩段要實現(xiàn)的功能是一樣的,但是第二段明顯可讀性更好,邏輯更佳清晰。在很多循環(huán)嵌套的時候,其實可以用“逆向思維”,用continue跳出不符合條件的循環(huán),而不是成立的時候繼續(xù)執(zhí)行,這樣只會不斷加深循環(huán)的層次。
下面是圖示中的Python代碼:
"""優(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)嵌套的層次,使可讀性和邏輯性更直觀,也沒有那么多縮進(jìn)。
轉(zhuǎn)自:小談博客 http://www.tantengvip.com/2015/05/python-for-level/
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
python使用cartopy在地圖中添加經(jīng)緯線的示例代碼
gridlines可以根據(jù)坐標(biāo)系,自動繪制網(wǎng)格線,這對于普通繪圖來說顯然不必單獨拿出來說說,但在地圖中,經(jīng)緯線幾乎是必不可少的,本文將給大家介紹了python使用cartopy在地圖中添加經(jīng)緯線的方法,需要的朋友可以參考下2024-01-01
Python采集大學(xué)教務(wù)系統(tǒng)成績單實戰(zhàn)示例
這篇文章主要為大家介紹了Python采集大學(xué)教務(wù)系統(tǒng)成績單實戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
解決Python報錯:ValueError:operands?could?not?be?broadcast?t
這篇文章主要給大家介紹了關(guān)于解決Python報錯:ValueError:operands?could?not?be?broadcast?together?with?shapes的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
Python破解BiliBili滑塊驗證碼的思路詳解(完美避開人機(jī)識別)
這篇文章主要介紹了Python破解BiliBili滑塊驗證碼的思路,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02
關(guān)于python3.7安裝matplotlib始終無法成功的問題的解決
這篇文章主要介紹了關(guān)于python3.7安裝matplotlib始終無法成功的問題的解決,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Python使用matplotlib創(chuàng)建Gif動圖的思路
這篇文章主要介紹了Python使用matplotlib創(chuàng)建Gif動圖,我們將討論matplotlib提供的名為“Animation”的動畫庫之一,Python二維繪圖庫是Matplolib可以輕松創(chuàng)建繪圖、直方圖、條形圖、散點圖等,需要的朋友可以參考下2022-04-04

