我想在 python 中將串列中的所有元素相乘,這是我的代碼
def mul(i):
a=1
for ele in i:
a*=ele
return a
list = [1,2,3,4,5]
print(mul(list))
但是代碼不起作用請告訴我我犯了什么錯誤。我使用 python 2.7.18
uj5u.com熱心網友回復:
確保你得到正確的縮進,嘗試:
def mul(i):
a=1
for ele in i:
a*=ele
return a
list = [1,2,3,4,5]
print(mul(list))
抱歉,它是 TL/DR,但請閱讀:Python 縮進
uj5u.com熱心網友回復:
您沒有使用正確的縮進。縮進是每行之前的空格,它們告訴計算機如何正確讀取您的代碼。
例如,
def mul(i):
a=1
計算機因為前面的縮進而知道它a=1是multiply函式的一部分a=1,表明它屬于mul函式。
縮進通常是 2 個空格、4 個空格或一個制表符的間距。在這里你的縮進
a*=ele
return a
太遠了。
代碼不起作用的原因是因為
list = [1,2,3,4,5]
print(mul(list))
不應該是 mul 函式的一部分,而縮進表明它是。最重要的是,return 函式在 for 回圈中縮進,這意味著您在不應該回傳的情況下多次回傳。
因此,撰寫此代碼的正確方法是:
def mul(i):
a=1
for ele in i:
a*=ele
return a
list = [1,2,3,4,5]
print(mul(list))
uj5u.com熱心網友回復:
您正在撰寫的代碼非常錯誤。您正在列印無法完成的功能定義。根據您的要求,我創建了一個程式,我在這里提供。
def Mul(List):
x = 0
M = 1
a = len(List)
while a != 0:
M *= int(List[x])
x = 1
a -= 1
return M
輸出如下,
>>> l = [2,4,5,4]
>>> Mul(l)
160
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/449645.html
標籤:python-2.7
上一篇:Matlab顯示缺少git狀態,但檔案由git管理良好
下一篇:.app安卓應用程式的域名包名
