在python中从函数返回项

在python中从函数返回项,python,function,return,Python,Function,Return,如何在此函数结束时返回print语句下方的注释行?另外,当我运行带有未注释的返回的函数时,我得到一个结果,但是当我运行带有注释的返回的函数时,我得到7个结果,我不确定为什么会发生这种情况 我想做的是在调用函数后调用track['name']。当我这样做时,我会得到这个错误回溯(最近的一次呼叫): 文件“spot.py”,第25行,在 音轨['name'] NameError:未定义名称“track” import requests import json message = "if i can

如何在此函数结束时返回print语句下方的注释行?另外,当我运行带有未注释的返回的函数时,我得到一个结果,但是当我运行带有注释的返回的函数时,我得到7个结果,我不确定为什么会发生这种情况

我想做的是在调用函数后调用track['name']。当我这样做时,我会得到这个错误回溯(最近的一次呼叫): 文件“spot.py”,第25行,在 音轨['name'] 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

你想返回所有
音轨
s还是一个或一个接一个(作为生成器)?只有一个很好,我只需要第一个匹配。你说的“调用音轨['name']”是什么意思?好的,谢谢。你知道我怎样才能让回程有效吗?当我试着呼叫
track['name']
时,我得到了一个error@Barnaby:我已经扩展了我的答案。@VaughnCato或do
返回曲目[“name”]、曲目[“href”]、曲目标题、已删除的单词数量
名称、href、标题、已删除的单词数量=递减列表(消息)