Python - 没有错误,但没有返回数据无论如何

问题描述:

我发挥我的功能定义和运行程序时没有错误。问题是当我尝试调用一个函数时没有真正发生。Python - 没有错误,但没有返回数据无论如何

from math import sqrt 

from recommendations import critics 

def sim_distance(prefs, p1, p2): 

    si = {} 
    for item in prefs[p1]: 
     if item in prefs[p2]: 
      si[item] = 1 
    # If they have no ratings in common, return 0 
    if len(si) == 0: 
     return 0 
    # Add up the squares of all the differences 
    sum_of_squares = sum([pow(prefs[p1][item] - prefs[p2][item], 2) for item in prefs[p1] if item in prefs[p2]]) 
    return 1/(1 + sqrt(sum_of_squares)) 

reload (recommendations) 
sim_distance(critics, 'Jack Matthews', 'Toby') 
+0

你怎么知道什么都没有发生?你的代码没有'print',所以它可能会做它的事情,然后终止....你的预期输出是什么? – roganjosh

+0

你也回来了一些东西,但你没有保持你已经返回的价值。 – MooingRawr

您的函数正在返回,但您对返回的数据没有做任何处理。您可以将返回值分配给变量x = sim_distance(...),然后对该变量执行一些操作。例如,print(x)