Python: Создание (определение) функции
Пора научиться создавать собственные функции! Код, в котором создаётся функция, называется определением функции.
Вот шаблон определения простой функции:
def имя_функции():
# тело функции, т.е. код
print("abc")
Определение собственных функций значительно упрощает написание и поддержку программ. Функции позволяют объединять сложные (составные) операции в одну. Например, отправка письма на сайте - это достаточно сложный процесс, включающий в себя взаимодействие с внешними системами (интернет). Благодаря возможности определять функции, вся сложность может быть скрыта за простой функцией:
from some-email-package import send
email = '[email protected]'
title = 'Помогите'
body = 'Я написал историю успеха, как я могу получить скидку?'
# Один маленький вызов — и много логики внутри
send(email, title, body)
Здесь мы в первый раз сталкиваемся с новым элементом синтаксиса — блоками инструкций. В Python несколько инструкций, объединённых по смыслу в некотоpyю группу - блок - записываются с отступом в четыре пробела. Блок всегда заканчивается перед первой строчкой, которая имеет отступ меньший, чем строчки блока. В примере выше тело функции — это блок.
Создадим нашу первую функцию. У неё будет одна задача: выводить на экран текст Today is: December 5
.
Нужно назвать функцию так, чтобы из названия была понятна её задача. Давайте дадим ей имя show_date()
:
# Определение функции
# Определение не вызывает функцию
# Мы лишь говорим, что теперь такая функция существует
def show_date():
text = 'Today is: December 5'
print(text)
В нашей функции только две строчки кода, но их может быть сколько угодно. Функции можно считать программами внутри программ.
Чтобы на 100% понять происходящее, обязательно сделайте следующее:
- Зайдите на https://repl.it/languages/python3. Это онлайн-интерпретатор Python.
- В левой части введите код примера выше.
- Запустите программу нажатием на "RUN ▶".
- Программа выполнится, но на экран ничего не выведется, потому что в программе есть только определение функции, но не запуск.
- Чтобы запустить функцию, нужно вызвать её. Добавьте к программе вызов:
show_date() # => Today is: December 5
- Запустите программу снова и удостоверьтесь, что в правой части на экран вывелся текст.
Соберём всё вместе. Вот полная программа, с определением функции и вызовом:
def show_date():
text = 'Today is: December 5'
print(text)
show_date()
Today is: December 5
Понятие «создать функцию» имеет много синонимов: «реализовать», «определить» и даже «заимплементить» (от слова implement). Все они встречаются в повседневной практике на работе.
Задание
Реализуйте функцию print_motto()
, которая печатает на экран фразу Winter is coming.
print_motto() # => Winter is coming
Важное замечание! В задачах, в которых нужно реализовать функцию, эту функцию вызывать не нужно. Вызывать функцию будут автоматизированные тесты, которые проверяют ее работоспособность. Пример с вызовом выше показан только для того, чтобы вы понимали, как ваша функция будет использоваться.