簡體   English   中英

從python中的函數返回項目

[英]Returning items from a function in python

如何在此函數的結尾處返回print語句下方的注釋行? 另外,當我運行帶有未注釋的return的函數時,我得到一個結果,但是當我運行帶有return注釋的函數時,我得到7個結果,但我不確定為什么會這樣。

我想做的就是在調用函數后調用track ['name']。 當我這樣做時,我得到此錯誤回溯(最近一次呼叫最近):在track ['name'] Name25中的文件“ spot.py”,第25行,NameError:未定義名稱“ track”

import requests
import json

message = "if i can\'t let it go out of my mind".split()
size = len(message)

def decrementList(words):
    for w in [words] + [words[:-x] for x in range(1,len(words))]:
        url = 'http://ws.spotify.com/search/1/track.json?q='
        request = requests.get(url + "%20".join(w))

        json_dict = json.loads(request.content)
        track_title = ' '.join(w)
        num_words_removed = len(words) - len(w)
        new_message_length =  size - num_words_removed
        new_message = message[new_message_length:size]

        for track in json_dict["tracks"]:
            if track["name"].lower() == track_title.lower():
                print track["name"], " | ", track["href"], " | ", track_title, " | ", num_words_removed
                #return track["name"], track["href"], track_title, num_words_removed


decrementList(message)

return語句使函數停止執行並返回您指定的值,而對於print語句,它僅使某些內容輸出到終端,函數繼續執行。

為了使用從函數返回的值,您必須對其進行某些操作,例如將其分配給變量。 例如:

track = decrementList(message)

但是在這種情況下,您將需要返回曲目:

    for track in json_dict["tracks"]:
        if track["name"].lower() == track_title.lower():
            return track

暫無
暫無

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

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