這個問題可以用獨立於語言的方式提出,但是我在python環境中提出要求,因爲不同的語言會有不同的細微差別。如何製作嵌套的IF語句整理器
我認識到這與this question類似,但我認爲我不同,因爲我在詢問如何將兩個條件放在與&
相同的if語句中會產生錯誤的情況。
假設我想看看abc[x]
是否等於「魚」,但我們假設我不確定len(abc)
是> = x。我不能只有if abc[x]=='fish'
,因爲它可能是索引超出範圍。因此我需要做
if len(abc)>x:
if abc[x]=='fish':
dostuff
else:
dootherstuff
else:
dootherstuff
有一個更清潔的方式來做到這一點,我沒有那麼最終會做同樣的dootherstuff
2條else語句?如果我想改變什麼dootherstuff
晚於我必須在兩個地方改變它,但到那時我可能會忘記。當然,我可以嘗試對代碼發表評論,稍後再提醒自己,或者讓dootherstuff
成爲功能,但這似乎仍然是第二好的。很多時候,當我這樣做時,dootherstuff
只是一行代碼,所以使它成爲函數並不會感覺好多少,即使它解決了後續的更改場景。
怎麼樣一試-除?一般來說,速度也會更快,如果長度在大部分時間內都處於界限內。 – Rishav
['和'](https://en.wikipedia.org/wiki/Short-circuit_evaluation)是Python中的短路操作符 - 它聽起來非常適合您的目的。備用建議:嘗試「if all()」:'if all([condition1,condition2])' – paulsm4
wrap-around try-except只是替換外部的if-else,而我仍然最終執行'dootherstuff'兩次。 –