Comme max a dit le return te renvoie la valeur que tu met après le return, c'est comme si quand tu call la fonction, elle devenait la valeur qu'elle retourne.
un autre exemple:
def laFonction(mot):
taString = mot
return taString
print laFonction("wassup niggah")
On fait une function qui prend en paramètre une string, lorsqu'on l'exécute, la nouvelle variable taString devient la string en paramètre, qui est "wassup niggah", on retourne ensuite taString, donc c'est l'équivalent de:
print "wassup niggah"
ça aurait aussi pu être:
def laFonction(mot):
return mot
print laFonction("Wassup niggah")
Qui ferait une sorte d'echo de la string que tu lui passe en paramètre
Ton return cube est complètement inutile dans ce cas-ci étant donné que tu fais le print dans la function même. Normalement (pas en python) on utilise une function void quand on a pas besoin de retourner quoi que ce soit. En python il doit y avoir un return, mais si tu veux qu'il ne retourne rien tu marques juste return ou return None