Функции в Python Вам уже немного знакомы. Вы использовали некоторые из них в предыдущих уроках.
Давайте теперь познакомимся с ними поближе. Узнаем подробнее о том, для чего они применяются, и как нам с ними работать.
Введение в функции в Python
Функция нашего желудка – переваривать пищу. Функция наших глаз – видеть все, что нас окружает. А функция сторожевой собаки – охранять территорию.
В компьютерном коде тоже могут быть функции. Много функций.
Например, есть функция, которая выводит информацию на экран. Называется эта функция print()
Вы ее уже хорошо знаете. Не так ли?
А еще Вы знаете функцию list(), которая превращает кортеж в список. И функцию tuple() которая, наоборот, превращает список в кортеж()
Функции в Python бывают встроенными и пользовательскими.
Встроенные (build in), такие как print(), list(), tuple() уже есть в Python. И мы просто можем ими пользоваться.
Пользовательские (custom) функции – это те функции, которые мы можем создать сами. Если нам не хватает встроенных функций.
Для того, чтобы создать такую функцию, нам необходимо использовать ключевое слово def.
def – сокращение от define, что в переводе с английского означает “определить”.
А значит, когда мы создаем функцию, мы тем самым “определяем” ее обязанности.
Давайте посмотрим как это выглядит на примере кода:
def поздоровайся():
print("Привет!")
поздоровайся()
Запишите эту программу в наш компилятор, и запустите ее.
Получилось вывести сообщение на экран? Отлично! А теперь, давайте разбираться.
Сначала мы прописали ключевое слово def.
Затем прописали имя функции “поздоровайся”, поставили круглые скобки и точку с запятой.
Далее мы спустились на строчку ниже и сделали 3 отступа*
На этой новой строчке мы сказали нашей функции, что она должна делать. То есть выводить строку “Привет!”.
Для этого мы применили встроенную функцию print() и поместили строку “Привет!” в ее круглые скобки.
После чего спустились на 3 строчки ниже**.
И прописали имя нашей созданной функции, вместе с круглыми скобками. Это называется “вызвать функцию”
* После точки с запятой программа сама сделает 3 отступа, когда мы начнем новую строчку.
** Спускаться на 3 строчки ниже после определения функции – обязательно по правилам грамотного написания кода.
Если с этим все понятно, давайте перейдем к параметрам и аргументам функций.
Параметры и аргументы функций
Настало время поговорить про параметры и аргументы функций в Python.
Как Вы заметили, сразу после имени функции и ее вызова идут круглые скобки. Их необязательно оставлять пустыми.
В скобки, стоящие сразу после имени функции, можно поместить параметр функции. А в скобки, стоящие после вызова функции, можно поместить аргумент функции.
Давайте посмотрим на пример ниже. Чтобы понять, где параметры, а где аргументы функций в Python:
def поздоровайся(имя):
print("Привет, " + имя + "!")
поздоровайся("Илон Маск")
Слово “имя”, стоящее в скобках после поздоровайся – это параметр. А строка “Илон Маск”, стоящая в скобках после вызова функции – это аргумент.
Вы спросите, в чем разница между параметром и аргументом? И зачем они нам оба нужны?
Отличный вопрос! Ну так вот:
Параметр – это место, приготовленное для будущего значения. А аргумент – это и есть то значение, которое пришло на место, которое приготовил параметр.
Другими словами, параметр – это просто заполнитель. А аргумент – это то, что помещается в заполнитель.
Если с первого раза это трудно понять, не переживайте! Просто перечитайте несколько раз.
А теперь запишите этот код в наш компилятор, и запустите его.
def поздоровайся(имя):
print("Привет, " + имя + "!")
поздоровайся("Илон Маск")
Давайте разберем его подробно:
Мы поместили параметр под названием имя в круглые скобки функции.
Строчкой ниже мы склеили строки “Привет, ” и “!” с именем параметра.
Теперь мы можем вызвать функцию, и передать ей аргумент с любым значением. В нашем случае это строка “Илон Маск”.
Если с этим все понятно, потренируйтесь, замените “Илон Маск” на Ваше имя. И перезапустите код. Так Вы измените аргумент, подставив в него новое значение.
Как вернуть значение из функции
Возврат значений из функций – это обычная задача для программиста.
Давайте научимся это делать.
Для того, чтобы функция поняла, что ей нужно возвращать значение, нам необходимо использовать ключевое слово return, а затем прописать само значение.
return в переводе с английского означает “возвращать”
Для того, чтобы Вам было понятно как все это выглядит, я создал функцию под названием “терминатор”. И ее обязанность – возвращать нам сообщение “Я еще вернусь…”
def терминатор(слова):
return "{}".format(слова)
сообщение = терминатор("Я еще вернусь...")
print(сообщение)
Запишите этот пример в наш компилятор, и запустите его. Давайте внимательно его разберем:
Сначала мы прописали ключевое слово def. И назвали нашу функцию “терминатор”.
Затем мы открыли круглые скобки, и передали в них параметр под названием “слова”.
Строкой ниже, после трех отступов, мы прописали ключевое слово return.
А после return мы создали форматированную строку (помните эту тему?)
Так у нас получилась функция, которая возвращает значение при помощи форматированной строки.
Затем мы спустились на четвертую строчку, и “вызывали” функцию терминатор, прописав ее.
Затем, в качестве аргумента, мы передали ей строку “Я еще вернусь…”
И после этого мы сохранили вызов функции со значением “Я еще вернусь…” в переменной “сообщение”.
Наконец, мы спустились на строчку ниже, и вывели сообщение на экран.
Поработайте с этим кодом. Меняйте название функции, аргументов и значений. Перезапускайте код, и смотрите, как изменяется ответ программы.
Вложенные функции в Python
Мы научились создавать пользовательские функции. Давайте теперь научимся создавать вложенные функции, и вложим одну функцию в другую.
Вот, как мы это сделаем:
def поздоровайся(имя):
print("Привет, " + имя + "!")
def сообщение(имя, вопрос):
поздоровайся(имя)
print("Скажи, " + вопрос)
сообщение("Илон", "когда летим на Марс?")
Перед тем, как мы рассмотрим этот пример во всех подробностях, пожалуйста, запишите его в наш компилятор, и запустите. Прочитайте ответ программы и подумайте, как мы его получили?
А теперь давайте рассмотрим наш код поподробнее.
На строчке 1 мы создали функцию под названием “поздоровайся”, и передали ей “имя” в параметр.
На строчке 2 мы вывели строки “Привет, ” и “!”, и соединили их с параметром функции.
В строчке 4 мы создали еще одну функцию под названием “сообщение”. Затем передали ей параметр первой функции (имя) и новый параметр (вопрос).
На строчке 5 мы вложили первую функцию во вторую, объявив имя первой функции с ее параметром.
На строчке 6 мы вывели строку “Скажи, ” и соединили ее со вторым параметром функции.
И, наконец, на строчке 8 мы вызвали вторую функцию, передав в ее аргумент значения для параметров первой и второй функции.
Если Вы не сразу все поняли, не переживайте. Понимание приходит с повторением и практикой.
Перечитывайте приведенный расклад столько, сколько Вам необходимо.
Меняйте код под себя, перезапускайте программу, и наблюдайте за тем, как меняется ее ответ.
Функции в Python, итоги
В десятой части Вы сделали следующее:
- Узнали о функциях в Python;
- Изучили параметры и аргументы функций;
- Научились возвращать значения из функций;
- Освоили вложенные функции.
Поздравляю Вас с завершением очередного урока! Мы движемся к завершению нашего курса. Осталась пара тем. И следующая из них – Классы и объекты в Python. Приступим!
Вам понравится:
Python Online – онлайн компилятор, с которым вы можете писать, запускать и проверять свой код без установки программ.