簡體   English   中英

Python:我的函數將打印連續輸出,但不會返回它們。

[英]Python: My function will print continuous outputs but will not return them.

首先,我無法為此找到合適的標題。 其次,我是編程新手。 無論如何,我有這個功能:

def addtrinumbs():
    x = 1
    list1 = []
    while x > 0:
        list1.append(x)
        x = x + 1
        y = sum(list1)
        print y

更改時,它將連續打印y。 我想做的是這樣的:

def addtrinumbs():
    x = 1
    list1 = []
    while x > 0:
        list1.append(x)
        x = x + 1
        y = sum(list1)
        return y

def addone(numbers):   
    x = numbers + 1   
    print x

addone(addtrinumbs())

所以我希望addone()連續從addtrinumbs()獲取輸入。 我覺得我缺少一個真正的基本概念和簡單概念。 當我運行它時,我只會得到1的輸出,即2。我已經閱讀了有關生成器的信息,但是我不確定這是否是我需要使用的輸出。 我想我了解它們的用途,但是找不到與我的問題有關的示例。 謝謝您的幫助或朝正確方向的指導。

您似乎缺少了生成器的概念addtrinumbs應該產生值而不是返回值。 (顯然它將永遠不會終止,但是對於生成器來說 ,這是可以的)。

addone將生成器作為參數並在其上循環

for x in numbers:
    print(x+1)

這將發出無休止的數字流-最好在某些地方存在退出條件-但這是使用的一般概念。

當函數返回某些內容時,該函數將自動中斷並退出該函數。 有關此問題的更多信息,請參見。 您必須選擇的一種方法是,首先將要返回的內容附加到列表中,然后返回該列表。

當函數addtrinumbs在第一個循環中查看return語句時,它將退出該函數,並返回相關值。 這就是為什么它僅返回一個值的原因。 您需要將值存儲在列表或其他內容中,然后返回列表。 因此,采用list2 = [] ,而不是return y ,而是執行list2.append(y) ,然后最終返回列表, return list2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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