我奮力調試下面的代碼,它拋出一個ZeroDivisionError解決模/分工有點難看,因爲我在添加if和abs()語句之前得到了這個錯誤。如何通過零誤差在python
我按照我的學校要求使用python 3.6,任務是使用過濾器返回int num
的因子。
我奮力調試下面的代碼,它拋出一個ZeroDivisionError解決模/分工有點難看,因爲我在添加if和abs()語句之前得到了這個錯誤。如何通過零誤差在python
我按照我的學校要求使用python 3.6,任務是使用過濾器返回int num
的因子。
由於您定義的range()方式,您的代碼返回此錯誤。
正確的方式來定義在python範圍如下:
range(start, stop, step)
如果你的情況下,你已經使用切片,這是造成你的程序拋出錯誤。
爲了您的程序,你需要定義一個函數是爲了回報由條件語句的東西,下面的代碼將解決您的問題
def fac(num):
if num > 0:
return list(filter(lambda x: num % x == 0, range(1, num+1)))
print(fac(5)) # [1, 5]
在這裏,我因爲在Python 3使用的列表函數內部過濾器和以上過濾器返回過濾器對象
謝謝!代碼現在正在工作。 – squalor
@squalor。我很高興我能夠提供幫助。我會很感激如果你可以標記這個答案有幫助。 –
它不是'num'需要非零;它是'x'。另外,這不是你如何使用'範圍'。請給我 – TigerhawkT3
[mcve]。您發佈的代碼有語法錯誤,完全無法運行,即使語法修復也不會產生ZeroDivisionError。 – user2357112
謝謝,我應該在發佈前做好更好的調試。今天我一直在抨擊我的頭靠在牆上。 – squalor