」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 Python 中檢查整除性而不出現除法陷阱?

如何在 Python 中檢查整除性而不出現除法陷阱?

發佈於2024-11-23
瀏覽:881

How to Check Divisibility in Python Without the Division Pitfalls?

在Python中檢查整除性:不同的視角

當面臨確定一個數字是否可以被另一個數字整除的任務時,許多開發人員本能地訴諸除法並檢查餘數。然而,這種方法可能會導致陷阱,特別是在 Python 對除法的不同解釋的情況下。

在 Python 2.x 中,預設行為是整數除法,它會丟棄餘數。這意味著除法運算子將始終產生一個整數,無論是否存在非零餘數。因此,使用 isinstance 測試整數並不能提供有意義的區分。

另一方面,在 Python 3.x 中,除法預設為浮點運算,甚至會產生浮點數值整數。因此,即使數字在數學意義上可整除,isinstance 檢查也會失敗。

更好的路徑:救援模數運算子

更有效的方法是使用模運算子%。當且僅當 n 能被 k 整除時,表達式 n % k == 0 傳回 True。此方法直接解決整除性標準,而不存在與除法相關的歧義。

範例解決方案

有了這些知識,讓我們修改您的程式碼以正確測試整除性:

n = 0
s = 0

while n 

此解法使用模運算子來檢查能否被 3 和 5 整除,從而有效地過濾掉滿足任一條件的數字。其結果是為您的原始問題提供更精確、更穩健的解決方案。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3