Найти в Дзене

🔧 Что такое функция, по-дедовски

Оглавление

Сначала, дружок, поговорим о сути. Функция — это такой себе закуток кода, который ты один раз написал, а потом можешь использовать сто раз, не повторяясь. Не зря говорят: семь раз отмерь, один — вызывай 😄

Пишется она с помощью ключевого слова def. Например:

python def мой_функциончик(x):
return x

Вызовешь потом её — и она тебе вернёт то, что в неё положил. Всё честно, как на базаре. Написал:

python print(мой_функциончик(23))

И получил 23. Без обмана, без сюрпризов. Ну, разве что ты сам туда клоуна вместо числа засунул — тогда уж не обижайся 😁

🛠 А теперь прибарахлим её: улучшим!

Живём ведь не в каменном веке. Функции, как и люди, растут, мудреют, обретают вторую половинку. Добавим второй параметр:

python def мой_функциончик(x, a):
return x + a

Вот теперь можно сказать: двое — не трое, но уже сила. Засовываешь туда, скажем, 12 и 23 — и получаешь 35. Проверено временем и калькулятором.

python print(мой_функциончик(12, 23)) # 35

И что забавно — можешь и строки передавать, а не только числа. Функция не гордая, от слов тоже не воротит нос. Подашь ей "Привет, " и "мир" — и она тебе соберёт "Привет, мир". Вот такая умница.

🧱 Несколько строк — не беда

Функция может быть многословной, как я после второй рюмки 😅 Главное — пробелы ставь правильно. Отступы — наше всё. Как в стройотряде: шаг влево, шаг вправо — сам виноват.

python def посложнее(x, a):
результат = x + a
return результат

Работает? Ещё бы! Но ты только попробуй написать return без отступа — и Python тебе такое скажет, что у тебя волосы завьются, даже если их уже и нет 🤭

🔁 Что можно возвращать

Ах, золотое слово return… Как ключ от сейфа. С его помощью можно вернуть всё, что душа пожелает — числа, строки, списки, словари, даже кортежи. Хошь — возвращай другую функцию. Вот так:

python def создать_сумматор():
def суммируем(x, y):
return x + y
return суммируем

Вызвал создать_сумматор(), получил функцию. Потом ещё раз вызвал — получил результат. По мне — магия, не меньше. 🔮

🤷‍♂️ А можно ведь и ничего не возвращать

Бывает, вызываешь функцию, а она тебе: “Я тебе ничего не должна!” И это нормально.

python def молчавая():
print("Приветик!")

Такую вызываешь — и она что-то делает, но ничего не даёт взамен. Как соседка Валя: поболтать — пожалуйста, а помочь — "я спину потянула".

🔧 Аргументы по умолчанию

Иногда надо, чтобы функция была не капризной. Чтобы не ты ей, а она тебе: “Хочешь — скажи, хочешь — промолчи”. Тут нам помогают значения по умолчанию:

python def приветствие(имя="друг"):
print(f"Привет, {имя}!")

Вызовешь приветствие() — она тебе: “Привет, друг!”. А если скажешь: приветствие("Олег") — и тут она подыграет. Удобно, да? Как жена — если повезло 😅

🌌 А если аргументов дофига?

Ну, не всегда ж знаешь, сколько будет параметров. На то и есть *args и **kwargs. Это как бесконечный карман у фокусника.

python def покажи_всё(*args, **kwargs):
print("Позиционные:", args)
print("Ключевые:", kwargs)

Можешь туда напихать чего угодно — она всё примет, всё разложит по полочкам. Как добрая бабка в деревне — всех накормит, никого не обидит.

🌀 Лямбда — маленькая, да удаленькая

Вот это, сынок, вообще чудо природы. Лямбда — это функция на одной строчке. Миниатюрная, как перстень, а пользы — вагон.

python сумма = lambda x, y: x + y
print(сумма(5, 7)) # 12

Писать удобно, читать — тоже, если глаза ещё видят мелкий шрифт. Главное — не перегибать. Всё хорошо в меру, и лямбды — не исключение. Не пихай их туда, где нужна полноценная функция — а то потом сам запутаешься.

🎯 Итог по-дедовски

Функции, друг мой, — это как инструменты в сарае. Всё на своём месте, всё под рукой. Хочешь — прибей, хочешь — прикрути, хочешь — посчитай. И пусть кто-то скажет, мол, сейчас уже ИИ за нас код пишет — а я скажу: плох тот программист, что на автоген надеется. Лучше самому понять, прочувствовать, потрогать каждую строчку, как ящичек с саморезами. 🧰

Так что, не ленись, учись писать функции с душой, по совести. И будет тебе счастье. А я пока пойду, чаю себе плесну... или не только чаю 😉🍷

До связи, старик-дед-программист 👴💻

-2