2016-12-05 3 views
0

Всякий раз, когда я ввожу следующий код:Функция в 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() 

в IDLE, "10" выводится.

Когда я ввожу тот же код в редактор кода, а затем нажмите F5, ничего не выводится. В качестве теста я создал новый файл в редакторе кода, вошли:

print ("Hello World") 

и прилежно получили выводимый результат, т.е. привет мир в новом окне из IDLE оболочки.

Так мне интересно, почему я получаю значение, отображаемое в IDLE среде, но не редактор кода, когда я вошел точно такой же код :(

+2

У вас нет «печати» в вашей ели 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, но вы не имеете сделать что-нибудь с результатом вы можете распечатать его, например:.

result = in_fridge() 
print(result) 
2

вы не Priting результат in_fridge вызова, вы должны напечатать:

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