Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 14, 2016 14:14:43

Faria
Зарегистрирован: 2016-06-14
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите пожалуйста Алгоритм Евклида

Здравствуйте , объясните кто-нибудь , почему функция
def evklid(a,b):
if b == 0:
return a
else:
evklid(b,a % b)
возвращает None , а функция
def evklid(a,b)
return a if b==0 else evklid(b,a%b)
возвращает нормальный искомый результат , что вообще за фигня и как влияет на результат этот самый тернарный оператор , почему с ним все работает , а без него нет?

Офлайн

#2 Июнь 14, 2016 15:03:29

noob_saibot
Зарегистрирован: 2013-09-11
Сообщения: 495
Репутация: +  20  -
Профиль   Отправить e-mail  

Помогите пожалуйста Алгоритм Евклида

def evklid(a, b):
    if b == 0:
        return a
    else:
        return evklid(b, a % b)

PS. А тут объяснение.

Отредактировано noob_saibot (Июнь 14, 2016 15:16:31)

Офлайн

#3 Июнь 14, 2016 21:51:17

Faria
Зарегистрирован: 2016-06-14
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите пожалуйста Алгоритм Евклида

noob_saibot
Спасибо!
Но я так и не понял , почему во втором случае (при сокращенной записи) все работает и без return ???

Офлайн

#4 Июнь 15, 2016 09:13:41

noob_saibot
Зарегистрирован: 2013-09-11
Сообщения: 495
Репутация: +  20  -
Профиль   Отправить e-mail  

Помогите пожалуйста Алгоритм Евклида

Faria
Как без return?
Ваш же код:
def evklid(a,b):
    return a if b==0 else evklid(b,a%b)
Выполняется тернарная условная операция и происходит return её результата, тоесть тоже самое что в коде:
def evklid(a,b):
    return tern(a, b)
def tern(a, b):
    if b == 0:
        return a
    else:
        return evklid(b, a % b)
PS. Чтобы не писать много кода добавили эту возможность.

Отредактировано noob_saibot (Июнь 15, 2016 09:17:15)

Офлайн

#5 Июнь 15, 2016 17:19:28

Faria
Зарегистрирован: 2016-06-14
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите пожалуйста Алгоритм Евклида

noob_saibot
Спасибо

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version