2016-12-05 12 views
0

Immer, wenn ich den folgenden Code eingeben:Funktion in Python produziert keine Ausgabe?

def in_fridge(): 
    try: 
     count =fridge [wanted_food] 
    except KeyError: 
     count =0 
    return count 

fridge ={"apples":10, "oranges":3, "milk":9} 
wanted_food="apples" 
in_fridge() 

In dem IDLE, "10" ausgegeben wird.

Wenn ich den gleichen Code in den Code-Editor eingeben und dann F5 drücken, wird nichts ausgegeben. Als Test habe ich eine neue Datei im Code-Editor erstellt, eingegeben:

print ("Hello World") 

und bekam pflichtschuldigst das ausgegebene Ergebnis, das heißt Hallo Welt in einem neuen Fenster aus der IDLE-Shell angezeigt.

So bin ich neugierig, warum ich einen Wert in der IDLE-Umgebung angezeigt zu bekommen, aber nicht der Code-Editor, wenn ich genau den gleichen Code eingegeben haben :(

+2

Sie haben keine 'print' in Ihren Tannen t Code-Schnipsel. – Tobias

+0

Bei dieser Frage geht es eigentlich nicht um IDLE. Die angezeigte Ausgabe ist die Ausgabe, die vom Python-Interpreter generiert wird, der den Code ausführt. Der Unterschied im Verhalten ist der Unterschied, den man sieht, wenn man den gleichen Code direkt in Python im interaktiven Modus statt im Batch-Modus in der Konsole ausführt. IDLE macht den Vergleich nur etwas einfacher, indem Code direkt vom Editor ausgeführt wird. –

Antwort

4

Sie müssen das drucken, da in IDLE die Rückgabe an der Konsole angezeigt wird, wenn sie nicht in einer Variablen gespeichert ist. Was beim Ausführen eines Skripts nicht passiert, im Skript, wenn etwas von einer Funktion zurückgegeben wird, müssen Sie dies erfassen. Mit = Operator wie result_of_func = function_name() und dann den Wert in diesen Variablen print(result_of_func)

Dies funktioniert storred drucken:

def in_fridge(): 
    try: 
     count =fridge [wanted_food] 
    except KeyError: 
     count =0 
    return count 

fridge ={"apples":10, "oranges":3, "milk":9} 
wanted_food="apples" 
print (in_fridge()) 

Oder:

in_fridge_count = in_fridge() 
print ('Count in fridge is : ',in_fridge_count) 
+0

Also, wenn in IDLE die Rückkehr automatisch gedruckt wird, bedeutet das umgekehrt, dass im Code-Editor die Rückkehr nicht automatisch gedruckt wird? – apronedsamurai

+1

Ja, was auch immer in IDLE zurückgegeben wird, es wird an die Konsole ausgegeben, wenn es nicht in einer Variablen erfasst wird. Was beim Ausführen über Skript nicht der Fall ist. Lesen Sie die aktualisierte Antwort. – harshil9968

+0

Bitte akzeptieren Sie die Antwort, wenn Ihnen das jetzt klar ist. – harshil9968

5

Sie in_fridge genannt haben, aber sie haben nicht etwas getan, mit dem Ergebnis, Sie es drucken können, zum Beispiel:.

result = in_fridge() 
print(result) 
2

Sie sind nicht priting das Ergebnis der in_fridge Anruf sollten Sie es drucken:

def in_fridge(): 
    try: 
     count =fridge [wanted_food] 
    except KeyError: 
     count =0 
    return count 

fridge ={"apples":10, "oranges":3, "milk":9} 
wanted_food="apples" 
print(in_fridge()) 
1

Um die Ausgabe anzuzeigen, müssen Sie drucken es:

print(in_fridge()) 
Verwandte Themen