Напомним, что в математике факториал числа n определяется как (как произведение всех целых чисел от 1 до n). Например, Ясно, что факториал легко вычислить, используя цикл for. Представьте, что нам нужно в нашей программе несколько раз вычислить факториал разных чисел (или в разных местах кода). Конечно, вы можете написать вычисление факториала один раз, а затем с помощью Copy-Paste вставить его туда, где вам это нужно:
None
# вычислить 3! res = 1 for i in range(1, 4): res *= i print(res) # вычислить 5! res = 1 for i in range(1, 6): res *= i print(res)
Однако, если мы допустим ошибку в исходном коде, этот ошибочный код появится во всех местах, где мы скопировали вычисление факториала. Более того, код длиннее, чем может быть. Чтобы избежать повторной записи той же логики в языках программирования, существуют функции.
Функции — это секции кода, которые изолированы от остальной части программы и выполняются только при вызове. Вы уже встретили функции sqrt() , len() и print() . Все они имеют что-то общее: они могут принимать параметры (ноль, один или несколько из них), и они могут возвращать значение (хотя они могут и не возвращаться). Например, функция sqrt() принимает один параметр и возвращает значение (квадратный корень из заданного числа). Функция print() может принимать различное количество аргументов и ничего не возвращает.
Уроки Python / Как создать функцию, что такое функции в Python, как с ними работать
Теперь мы хотим показать вам, как написать функцию factorial() которая принимает один параметр — число и возвращает значение — факториал этого числа.
None
def factorial(n): res = 1 for i in range(1, n + 1): res *= i return res print(factorial(3)) print(factorial(5))
Функции и их аргументы
В этой статье я планирую рассказать о функциях, именных и анонимных, инструкциях def, return и lambda, обязательных и необязательных аргументах функции, функциях с произвольным числом аргументов.
Именные функции, инструкция def
Функция в python — объект, принимающий аргументы и возвращающий значение. Обычно функция определяется с помощью инструкции def.
Определим простейшую функцию:
Инструкция return говорит, что нужно вернуть значение. В нашем случае функция возвращает сумму x и y.
Теперь мы ее можем вызвать:
Функция может и не заканчиваться инструкцией return, при этом функция вернет значение None:
Функция может принимать произвольное количество аргументов или не принимать их вовсе. Также распространены функции с произвольным числом аргументов, функции с позиционными и именованными аргументами, обязательными и необязательными.
Функция также может принимать переменное количество позиционных аргументов, тогда перед именем ставится *:
Как видно из примера, args — это кортеж из всех переданных аргументов функции, и с переменной можно работать также, как и с кортежем.
Функция может принимать и произвольное число именованных аргументов, тогда перед именем ставится **:
В переменной kwargs у нас хранится словарь, с которым мы, опять-таки, можем делать все, что нам заблагорассудится.
#5. Математические функции и работа с модулем math | Python для начинающих
Анонимные функции, инструкция lambda
Анонимные функции могут содержать лишь одно выражение, но и выполняются они быстрее. Анонимные функции создаются с помощью инструкции lambda. Кроме этого, их не обязательно присваивать переменной, как делали мы инструкцией def func():
Для вставки кода на Python в комментарий заключайте его в теги
- Модуль csv — чтение и запись CSV файлов
- Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
- Онлайн-обучение Python: сравнение популярных программ
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов
- Сделай свой вклад в развитие сайта!
- Самоучитель Python
- Карта сайта
- Отзывы на книги по Python
- Реклама на сайте
Источник: pythonworld.ru
Функции в Python
Функция в Python — это именованный блок кода, состоящий из последовательных инструкций и вызываемый по имени в любом месте программы. В инструкциях, содержится руководство для выполнения какой-то задачи. Например, посчитать индекс массы тела пользователя, на основе введенных им данных. Функции могут быть как встроенные, так и собственные. На этом уроке, мы научимся создавать пользовательские.
Создать функцию в Python
Создание функции в Python, начинается с объявления ключевого слова def (определить), затем идет название функции с круглыми скобками и двоеточие (:). Затем, каждый раз начиная с новой строки и с отступом в 4 пробела, записываются те самые инструкции. Код с инструкциями называется телом функции.
def func_name():
инструкция_1
инструкция_2
. и.т.д
Вызов функции в Python
Когда функция написана, то сама по себе она не будет выполняться. Функцию надо вызвать, сделать это можно в разных местах программы. Как вызывается функция? Мы обращается к имени функции, не забывая указать пару круглых скобок на конце. Без скобок функция не выполнится.
Нельзя функцию вызвать до её объявления.
Одну и ту же функцию можно вызывать неограниченное количество раз. Это удобно, когда в рамках одной программы, периодически выполняется один и тот же алгоритм действий. Вам не нужно, снова и снова писать одинаковые инструкции, когда можно вызвать готовую функцию.
Нужно вывести на экран тело функции.
- объявляем функцию
- пишем инструкцию в теле функции
- вызов функции
- получаем результат выполнения тела функции
Аргументы функции в Python
Зачем мы пишем пустые скобочки на конце названия функции? Надо сказать, что не всегда они пустые. В скобочках могут передаваться аргументы, но не обязательно. Аргументы — это входные данные, которые передаются функции при её создании и вызове. Если функция создается с аргументами, то и вызывается с аргументами.
def f_arg(z):
#тело функции
Главное предназначение функции — это обработка полученных данных и получение результата. Давайте рассмотрим пример функции, которая умножает передаваемое число на два и распечатывает готовый результат. В скобках указываем аргумент x, значение которого функция получит позже. Далее пишем инструкции, что должна делать сама функция multiplay.
Функция умножает число на два и распечатывает результат. Вызываем функцию multiplay(4) и передаем в скобках значение 4, с которым функция должна работать. В результате выполнения кода, на экран выведется число 8.
Что происходит при вызове функции? Когда мы вызываем функцию и передаем ей аргумент (4), то этот аргумент внутри функции получает название x и подставляется вместо него в инструкциях.
def multiplay(x):
result = x * 2
print(result)
multiplay(4)
8
Возвращаемое значение функции (return)
Когда функция просто выводит что-то на экран print(x), то она ничего не возвращает. Однако функция может получать на входе какие-то данные, обрабатывать их и возвращать полученное значение. С помощью оператора return, функция возвращает какое-то значение, при её вызове.