2016-07-01 14 views
0

Dies ist nicht für irgendein Projekt oder etwas, nur Herumalbern. (Tat dies in einem Python-Shell)Neu bei Python - Wie speichere ich einen voreingestellten Zahlengenerator als Funktion?

import random 
def rand1(): 
    random.gauss(0, 0.1) * 0.3 + random.gauss(0, 3) * 0.7 

rand1() + 1 

Es kommt mit

TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' 

Warum die rand1() nicht in mathematischen Operationen arbeiten? Auch wenn ich es in einer Variablen wie rand2 = rand1() speichern, kommt es immer noch mit der gleichen Nachricht. Gibt es eine Möglichkeit, es als Float und nicht als NoneType zu speichern?

+2

Sie nichts von Ihrer Funktion zurückkehrt, so kehrt 'None'. – kindall

+0

Sie müssen Ihr Ergebnis zurückgeben –

+0

Bitte erklären Sie, was meinst du etwas von meiner Funktion zurück? – Cogswellx

Antwort

0

Die Syntax für eine Funktion ist

def functionname(): 
# function operations - this is just a comment, noted by the #! 
<tab>x = 2 + 2 
<tab>return x 

Diese "kehrt x" an den Anrufer. Die Registerkarten <tab> sind notwendig, damit der Interpreter weiß, dass er Teil der Funktion ist.

Von dem, was ich las, und auf das, was ich geschrieben habe, ich nehme an, Sie dies bedeuten:

import random 
def rand1(): 
    return random.gauss(0, 0.1) * 0.3 + random.gauss(0, 3) * 0.7 

rand1() + 1 
+0

Danke, ich glaube, ich fange jetzt an, es zu bekommen. Sorry für die dumme Frage (Ihr antwortet sehr schnell!) – Cogswellx

+0

@Cogswellx Keine Frage ist eine dumme Frage. Wenn Sie vor einem Compiler/Interpreter sitzen und sich fragen, was Sie schreiben sollen, ist dies der richtige Ort für Sie. Wenn das Problem dadurch gelöst wurde, klicken Sie auf das Häkchen. –