在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