Определение функций
В этом уроке вы научитесь писать собственные функции. Начнём с задачи: нам нужны площади трёх прямоугольников. Площадь прямоугольника — это его ширина, умноженная на высоту, поэтому можно написать так:
width1 = 5
height1 = 6
area1 = width1 * height1
print(area1)
width2 = 10
height2 = 5
area2 = width2 * height2
print(area2)
width3 = 1
height3 = 5
area3 = width3 * height3
print(area3)Выведется:
30
50
5Это работает, но мы трижды написали одни и те же четыре строки, а менялись только числа. Представьте сто прямоугольников! А если бы мы нашли ошибку в вычислении, её пришлось бы исправлять в ста местах.
Программисты стараются не повторять код. Вместо этого они пишут повторяющуюся часть один раз, дают ей имя и используют везде, где нужно. Такой именованный кусок кода называется функцией.
Вы уже пользовались функциями, которые есть в Python, например print(), len(), str() или sum(). Теперь вы напишете свои. Создание функции называется её определением:
def say_hello():
print("Привет!")
print("Хорошего дня!")В определении функции есть такие части:
- Ключевое слово
def(сокращение от define — «определить»), которое сообщает Python, что дальше идёт функция. - Имя функции, здесь
say_hello. Оно подчиняется тем же правилам, что и имена переменных: без пробелов, а имена из нескольких слов пишутся в snake_case. Выбирайте имя, которое говорит, что делает функция, напримерsay_helloилиprint_area. - Круглые скобки
(). Пока они пустые; скоро вы узнаете, что в них пишут. - Двоеточие
:в конце строки, как послеifилиfor. - Блок кода с отступом под первой строкой, который называется телом функции. В нём находятся команды, которые выполняет функция. Тело заканчивается там, где заканчивается отступ.
Когда вы запустите этот код, ничего не выведется. Это не ошибка! Определение лишь сообщает Python, что должна делать функция, — как рецепт, записанный в кулинарной книге: пока никто ничего не приготовил. В следующем упражнении вы заставите функцию выполниться.
Следите за двоеточием и отступом. Без двоеточия программа завершится с ошибкой SyntaxError: expected ':'. Если у тела нет отступа, вы получите IndentationError: expected an indented block after function definition on line 1.
Задание
- 1
Создайте функцию с именем
first_function, тело которой выводитЭто моя первая функция!. Затем запустите программу: пока ничего не выводится, так и должно быть.