Найти - Пользователи
Полная версия: Функции в Python
Начало » Python для новичков » Функции в Python
1 2
MetalHead
Добрый день, товарищи! Всех с наступающим Возник весьма глупый вопрос(точнее мысля) как работают функции в python, объясните пожалуйста.
Пример 1. Функция в функции. Вот вызываю из одной функцию другую функцию. Выводит все нормально.
def hello () :
    print ("hello")
    hi ()
def hi () :
    print ("hi")
hello ()
hi ()
Пример 2. Происходит бесконечный вызов результата функции, если обратиться к другой функции, которая вызывет ту функцию, которая выше. Не могу понять почему так? Объясните не просвященному. Не являюсь гуру программером, чайник одним словом.
def hello () :
    print ("hello")
    hi ()
def hi () :
    print ("hi")
    hello ()
hello ()
hi ()

4kpt_II
Функции вызывают друг друга по очереди. И так до бессконечности…
Master_Sergius
А что тут непонятного?
Посмотри на второй кусок - там чётко написано - def hello() - ищи на той стороне улицы (тобишь вызов hi), перешел на другую сторону - def hi() - а там тоже ищи на той стороне улицы (вызов hello), вот и бегает туда сюда, пока не будет сбит машиной
Kustodiev_17
С дорогой это красочно и трагично и живописно. Мне в контексте приветствий из программы вспомнился стишок:

Я ПРОДАВАТЬ НЕСЛА ТВОРОГ

(Из английской народной поэзии)
Перевёл Г. Недров

Я продавать несла творог.
Стоял денёк погожий.
И вдруг навстречу старичок,
На здешних непохожий.

Он мне дорогу уступил,
С поклоном шляпу снял,
И “здравствуйте”, и “здравствуйте”,
И “здравствуйте” сказал.

Ну не могла же я в ответ
Пройти и промолчать:
Он - “здравствуйте”,
Я - “здравствуйте”,
И “здравствуйте” опять.

Старик продрог, прокис творог,
Стояли мы дней пять.
И “здравствуйте”, и “здравствуйте”,
И “здравствуйте” опять.
sergeek
интересно, что будет с тсом если он попытается понять как эти числа фибоначчи считаются
R = lambda f : ((lambda r : lambda a : f(r(r), a)) 
                (lambda r : lambda a : f(r(r), a)))
            
fib = R(lambda self, n : n if n < 2 else self(n-2) + self(n-1))
print(list(map(fib, range(10))))
Singularity
Очень советую пройти по ссылке http://goo.gl/eOJTCY
Singularity
sergeek
XГМ

Пиши уже на чистом хаскеле. Чего уже тащить эту хрень в питон ?
sergeek
Singularity
Пиши уже на чистом хаскеле. Чего уже тащить эту хрень в питон ?
Почему хрень-то ? Мне просто интересно смотреть на функции по другим углом. И ничего я не тащу в питон
MetalHead
Благодарю ребят, все понятно. И еще вопрос, должна ли каждая функция возвращать значение с помощью return?
4kpt_II
Она и так возвращает. Только если вы явно не указали что вернуть в return, то она возвращает значение None.
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