Найти - Пользователи
Полная версия: Помогите пожалуйста Алгоритм Евклида
Начало » Python для новичков » Помогите пожалуйста Алгоритм Евклида
1
Faria
Здравствуйте , объясните кто-нибудь , почему функция
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)
возвращает нормальный искомый результат , что вообще за фигня и как влияет на результат этот самый тернарный оператор , почему с ним все работает , а без него нет?
noob_saibot
def evklid(a, b):
    if b == 0:
        return a
    else:
        return evklid(b, a % b)

PS. А тут объяснение.
Faria
noob_saibot
Спасибо!
Но я так и не понял , почему во втором случае (при сокращенной записи) все работает и без return ???
noob_saibot
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. Чтобы не писать много кода добавили эту возможность.
Faria
noob_saibot
Спасибо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB