Функции в Python
Функция — это именованный блок кода, который бездействует, пока вы его не вызовете.
Она может возвращать данные в качестве результата.
Кроме того, она избавляет вас от повторения одного и того же кода.
Создание функции
Начните функцию с ключевого слова def, затем дайте ей имя и поставьте пару круглых скобок.
В следующем разделе так определяется функция с именем my_function. При каждом вызове она выводит «Hello from a function».
Сделайте отступ для кода, который относится к функции, потому что именно отступами Python обозначает блок кода.
Вызов функции
Чтобы вызвать функцию, нужны только её имя и пара круглых скобок.
Одну и ту же функцию можно вызывать сколько угодно раз.
Пример
my_function, которая выводит «Привет из функции».
Вызовите функцию один раз.
Вывод: полная программа на Python
def my_function():
print("Привет из функции")
my_function()
Пример
my_function, которая выводит «Привет из функции».
Вызовите функцию три раза.
Вывод: полная программа на Python
def my_function():
print("Привет из функции")
my_function()
my_function()
my_function()
Имена функций
Имена функций выбираются так же, как имена переменных в Python:
- Первым символом должна быть буква или символ подчёркивания
- Допускаются только буквы, цифры и символы подчёркивания
- Верхний и нижний регистр различаются, поэтому
myFunctionиmyfunction— два разных имени
Выбирайте понятное имя, которое говорит, что делает функция.
calculate_sum()
_private_function()
myFunction2()
Зачем нужны функции?
Допустим, ваша программа должна в нескольких местах переводить температуру из градусов Фаренгейта в градусы Цельсия. Без функций одно и то же вычисление придётся писать снова и снова.
Функция позволяет написать его один раз, а затем использовать везде, где нужно.
Пример
Повторяющийся код, без функции:
Вывод: полная программа на Python
temp1 = 77
celsius1 = (temp1 - 32) * 5 / 9
print(celsius1)
temp2 = 95
celsius2 = (temp2 - 32) * 5 / 9
print(celsius2)
temp3 = 50
celsius3 = (temp3 - 32) * 5 / 9
print(celsius3)
Пример
Повторно используемый код, с функцией:
fahrenheit_to_celsius, которая переводит градусы Фаренгейта в градусы Цельсия.
С её помощью переведите и выведите 77, 95 и 50.
Вывод: полная программа на Python
def fahrenheit_to_celsius(fahrenheit):
return (fahrenheit - 32) * 5 / 9
print(fahrenheit_to_celsius(77))
print(fahrenheit_to_celsius(95))
print(fahrenheit_to_celsius(50))
Возвращаемые значения
Оператор return позволяет функции передать данные обратно тому коду, который её вызвал.
Как только он выполняется, функция останавливается и результат возвращается.
Это значение можно сохранить в переменной или сразу использовать.
Если оператора return совсем нет, функция возвращает None.
Пример
Сохранение возвращаемого значения в переменной:
get_greeting, которая возвращает «Привет из функции».
Сохраните возвращаемое значение в переменной и выведите его.
Вывод: полная программа на Python
def get_greeting():
return "Привет из функции"
message = get_greeting()
print(message)
Пример
Вывод возвращаемого значения сразу:
get_greeting, которая возвращает «Привет из функции».
Выведите возвращаемое значение напрямую, не сохраняя его.
Вывод: полная программа на Python
def get_greeting():
return "Привет из функции"
print(get_greeting())
Оператор pass
У определения функции должно быть тело. Для функции-заглушки, в которой ещё нет кода, напишите внутри неё оператор pass.
Разработчики часто используют pass, чтобы сначала наметить структуру программы, а детали добавить позже.
Пример
my_function с помощью оператора pass.
Вывод: полная программа на Python
def my_function():
pass