如何在此函数结束时返回print语句下面的注释掉的行?另外,当我使用返回未注释的函数运行函数时,我得到一个结果,但是当我运行带返回注释的函数时,我得到7个结果,我不确定为什么会发生这种情况。
我想要做的是在调用函数后调用track ['name']。当我这样做时,我收到此错误Traceback(最近一次调用最后一次): 文件“spot.py”,第25行,in 跟踪[“名称”] 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)
答案 0 :(得分:1)
return语句导致函数停止执行并返回您指定的值,而使用print语句只会导致某些内容输出到终端,并且函数继续执行。
为了使用从函数返回的值,您必须对其执行某些操作,例如将其分配给变量。例如:
track = decrementList(message)
但在这种情况下,您需要返回曲目:
for track in json_dict["tracks"]:
if track["name"].lower() == track_title.lower():
return track