簡體   English   中英

函數不返回任何值,而不返回列表的總和

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM