2016-12-05 12 views
0
私は次のコードを入力するたびに

:IDLE中に、Pythonの関数は出力を生成しませんか?

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() 

は、 "10" が出力されます。

コードエディタに同じコードを入力してからF5キーを押すと、何も出力されません。テストとして、私は、コードエディタで新しいファイルを作成し、入力された:

print ("Hello World") 

をし、忠実に出力された結果を得た、すなわちハローIDLEシェルから新しいウィンドウに表示され世界。

だから私は、私は正確に同じコード:(

+2

あなたのfirsには 'print'はありませんtコードスニペット。 – Tobias

+0

この質問は実際にはIDLEに関するものではありません。表示される出力は、コードを実行するPythonインタプリタによって生成された出力です。振る舞いの違いは、対話モードとバッチモードの両方でPythonで直接同じコードをコンソール上で実行することの違いです。 IDLEは、エディタから直接コードを実行することで、比較をわずかに簡単にします。 –

答えて

4

IDLEでは、変数に格納されていない場合、コンソールに戻り値が表示されるため、印刷する必要があります。キャプチャする必要がある関数によって何かが返された場合、スクリプトを実行するときには起こりません。 result_of_func = function_name()よう=演算子を使用して、その変数にstorred値を印刷print(result_of_func)

これは動作します:

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()) 

または:

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

IDLEの場合、リターンが自動的に印刷されますが、逆にコードエディタではリターンは自動的には印刷されませんか? – apronedsamurai

+1

はい、IDLEの戻り値は、変数に取り込まれなければコンソールに出力されます。スクリプトで実行する場合はそうではありません。更新された答えをお読みください。 – harshil9968

+0

これがあなたにはっきりと答えたら、親切に答えを受け入れてください。 – harshil9968

5

を入力したときは、in_fridge呼ばれてきましたが、あなたが持っていない、私はIDLE環境には、表示された値ではなく、コードエディタを取得する理由として興味があります結果に何もしていますが、たとえば、それを印刷できます。あなたがin_fridge呼び出しの結果をpritingされていません

result = in_fridge() 
print(result) 
2

を、あなたはそれを印刷する必要があります。

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

を出力を表示するためには、印刷する必要がありますそれ:

print(in_fridge()) 
関連する問題