Faria
Июнь 14, 2016 14:14:43
Здравствуйте , объясните кто-нибудь , почему функция
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)
возвращает нормальный искомый результат , что вообще за фигня и как влияет на результат этот самый тернарный оператор , почему с ним все работает , а без него нет?
Faria
Июнь 14, 2016 21:51:17
noob_saibot
Спасибо!
Но я так и не понял , почему во втором случае (при сокращенной записи) все работает и без return ???
noob_saibot
Июнь 15, 2016 09:13:41
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. Чтобы не писать много кода
добавили эту возможность.