[英]Function returns none instead of the sum of list
為什么此代碼在Python 2中不返回任何內容? 但是,如果我將print語句替換為return語句,即函數本身中的print sum,它將給出正確的答案。 為什么會這樣? 我知道這是一個愚蠢的問題,但我不能自己解決。
import math
n=int(raw_input().strip())
temp = [5]
arr=[]
def cal(arr):
arr.append(int(math.floor(temp[-1]/2)))
temp.append(arr[-1]*3)
if len(arr)==n:
return sum(arr)
cal(arr)
print cal(arr)
你需要
return cal(arr)
否則,該函數將僅遞歸調用自身,並且默認情況下返回None
(而不是計算結果)。
該函數的末尾應顯示為
if len(arr)==n:
return sum(arr)
else:
return cal(arr)
不是嗎 如果函數結束而不返回值,則將得到None
作為返回值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.