Некоторые вопросы по следующему коду

У меня есть следующие вопросы по следующему коду:

  1. Какое значение имеет 0 во второй строке? Это что-то вроде «правда» или «ложь»? Или числовое значение?

  2. Необходимы ли операторы возврата в функции user_even? Код работает без них, но кажется, что все пользовательские функции имеют в себе оператор return или я ошибаюсь?

def divisible(num1, num2):
    return num1 % num2 == 0

def user_even():
    num1 = int(input ("Choose a number: "))
    num2 = int(2)

    if divisible(num1, num2): 
        print ("It's even")
        return
    else:
        print ("it's odd")
        return
user_even() 

person sleepylog    schedule 22.03.2017    source источник
comment
1. Значение, которое содержит 0, равно, err, 0. Это просто цифра ноль. 2. Нет, функция будет неявно return None и вести себя идентично, если их удалить.   -  person jonrsharpe    schedule 22.03.2017
comment
Хорошо, но если число1 = 10 и число2= 5, то 10/2=5. Я не понимаю, что представляет собой ноль в этом случае, потому что ответ не равен 0. Как 0 вступает в игру с точки зрения четных или нечетных ответов? Это настолько выше моего понимания, что я даже не знаю, правильно ли я это объясняю. Я законченный нуб в кодировании.   -  person sleepylog    schedule 22.03.2017
comment
Забудьте мой предыдущий комментарий, я думаю, что понимаю его.   -  person sleepylog    schedule 22.03.2017


Ответы (2)


Для вопроса 1 он оценивает оператор и возвращает логическое значение (Истина или Ложь). 0 есть 0.

return 5 % 5 == 0 # Remainder of 5/5 is 0 so that returns True
return 5 % 4 == 0 # Remainder of 5/4 is 1 so that returns False

Для вопроса 2 операторы return не нужны. Оператор return следует использовать для переменных или фрагментов данных, которые необходимо вернуть из функции. В предоставленном вами коде данные не возвращаются, поэтому нет необходимости в операторе return.

person Pike D.    schedule 22.03.2017
comment
Ответ на вопрос 2 частично правильный, но есть некоторые недостающие моменты. Оператор return также используется для выхода из функции. В приведенном выше примере такого условия нет, но если у вас есть более длинная функция, в которой вы хотите остановить выполнение функции в некоторых точках, вы просто размещаете операторы return, чтобы он вышел из функциональный блок без выполнения дальнейших строк кода. но это не так в приведенном выше вопросе. - person FallenAngel; 22.03.2017
comment
Спасибо, что очень помогли! - person sleepylog; 22.03.2017

1.) Возврат будет логическим, потому что вы использовали операторы сравнения (==)

2.) Оператор возврата не нужен. Обратитесь к этой теме. Можно ли пропустить возврат None?

person mllduran    schedule 22.03.2017
comment
Спасибо, mllduran. Просто любопытно, пишется ли «возврат» так же, как «возврат Нет»? - person sleepylog; 22.03.2017
comment
Нет никакой разницы. :) Однако использование «return None» означает, что ваша функция предназначена для возврата значения для последующего использования. - person mllduran; 23.03.2017