測試多個變數是否相等:綜合解
此查詢提出了一個有趣的挑戰:將多個變數與特定整數進行比較並產生一個根據結果輸出字串。
要解決這個問題,必須了解 Python 中的布林表達式的行為例如英文句子。例如,提供的程式碼片段將 or 運算子的每一側解釋為單獨的表達式,而不是根據相同的比較來評估所有變數。
要修正此問題,正確的語法是:
if x == 1 or y == 1 or z == 1:
這確保了每個變數獨立執行比較。
此外,可以使用針對元組:
if 1 in (x, y, z):
或者,更有效的是,可以使用集合進行其恆定成本成員資格測試:
if 1 in {x, y, z}:
此改進的程式碼利用了集合的事實:無論左側操作數如何,成員資格測試都有固定的執行時間。
本質上,or 運算子分隔其參數,將每個參數評估為布林值 表達式。但是,即使以單一表達式計算,結果也不會符合所需的行為。這是因為 or 運算子傳回第一個參數「truthy」(除 False、數字 0 或空容器之外的值)。因此,只會考慮序列中第一個類似 true 的值,這可能會導致錯誤的結果。
以上是如何在 Python 中有效測試多個變數的相等性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!