Учебник по Python

ДОМАШНЯЯ СТРАНИЦА ПИТОН Введение в Python Python для начала Синтаксис Python Комментарии Python Переменные Python Типы данных Python Числа Python Кастинг Python Строки Python Логические значения Python Операторы Python Списки Python Кортежи Python Наборы Python Словари Python Python, если...иначе Циклы Python в то время как Python для циклов Функции Python Python лямбда Массивы Python Классы/объекты Python Наследование Питона Итераторы Python Объем Python Модули Python Даты Python Математика Python Python JSON регулярное выражение Python Картинка в картинке Python Python Попробуйте... Кроме Пользовательский ввод Python Форматирование строк Python

Работа с файлами

Обработка файлов Python Файлы чтения Python Python Запись/создание файлов Удалить файлы Python

Модули Python

Учебник по NumPy Прохождение панды Учебник по Сципи

Python Matplotlib

Введение в Matplotlib Matplotlib Начать Пилот Matplotlib Графики Matplotlib Маркеры Matplotlib Линия Matplotlib Метки Matplotlib Сетка Matplotlib Подсюжеты Matplotlib Матплотлиб Скаттер Бары Matplotlib Гистограммы Matplotlib Круговые диаграммы Matplotlib

Машинное обучение

Начиная Средняя медиана режима Среднеквадратичное отклонение Процентиль Распределение данных Нормальное распределение данных Точечная диаграмма Линейная регрессия Полиномиальная регрессия Множественная регрессия Масштаб Поезд/тест Древо решений

Python MySQL

Начать работу с MySQL MySQL Создать базу данных MySQL Создать таблицу Вставка MySQL Выбор MySQL MySQL Где Порядок MySQL MySQL Удалить Таблица удаления MySQL Обновление MySQL Лимит MySQL MySQL присоединиться

Python MongoDB

Начать работу с MongoDB MongoDB Создать базу данных MongoDB Создать коллекцию Вставка MongoDB MongoDB Найти Запрос MongoDB Сортировка MongoDB MongoDB Удалить Коллекция MongoDB Drop Обновление MongoDB Лимит MongoDB

Справочник по Python

Обзор Python Встроенные функции Python Строковые методы Python Методы списка Python Словарные методы Python Методы кортежей Python Методы набора Python Файловые методы Python Ключевые слова Python Исключения Python Глоссарий Python

Справочник по модулям

Случайный модуль Модуль запросов Модуль статистики Математический модуль cМатематический модуль

Python Как

Удалить дубликаты списка Перевернуть строку Добавить два числа

Примеры Python

Примеры Python Компилятор Python Упражнения на Python Питон Викторина Сертификат Python

Функции Python


Функция — это блок кода, который запускается только при вызове.

Вы можете передавать данные, известные как параметры, в функцию.

В результате функция может возвращать данные.


Создание функции

В Python функция определяется с помощью ключевого слова def :

Пример

def my_function():
  print("Hello from a function")

Вызов функции

Чтобы вызвать функцию, используйте имя функции, за которым следуют круглые скобки:

Пример

def my_function():
  print("Hello from a function")

my_function()

Аргументы

Информация может передаваться в функции в качестве аргументов.

Аргументы указываются после имени функции в круглых скобках. Вы можете добавить столько аргументов, сколько хотите, просто разделите их запятой.

В следующем примере есть функция с одним аргументом (fname). Когда функция вызывается, мы передаем имя, которое используется внутри функции для вывода полного имени:

Пример

def my_function(fname):
  print(fname + " Refsnes")

my_function("Emil")
my_function("Tobias")
my_function("Linus")

Аргументы часто сокращаются до аргументов в документации Python.



Параметры или аргументы?

Параметр и аргумент терминов могут использоваться для одного и того же: информации, которая передается в функцию.

С точки зрения функции:

Параметр — это переменная, указанная в скобках в определении функции.

Аргумент — это значение, которое передается функции при ее вызове.


Количество аргументов

По умолчанию функция должна вызываться с правильным количеством аргументов. Это означает, что если ваша функция ожидает 2 аргумента, вы должны вызывать функцию с 2 аргументами, не больше и не меньше.

Пример

Эта функция ожидает 2 аргумента и получает 2 аргумента:

def my_function(fname, lname):
  print(fname + " " + lname)

my_function("Emil", "Refsnes")
Если вы попытаетесь вызвать функцию с 1 или 3 аргументами, вы получите ошибку:

Пример

Эта функция ожидает 2 аргумента, но получает только 1:

def my_function(fname, lname):
  print(fname + " " + lname)

my_function("Emil")

Произвольные аргументы, *args

Если вы не знаете, сколько аргументов будет передано в вашу функцию, добавьте *перед именем параметра в определении функции.

Таким образом, функция получит кортеж аргументов и сможет получить соответствующий доступ к элементам:

Пример

Если количество аргументов неизвестно, добавьте *перед именем параметра:

def my_function(*kids):
  print("The youngest child is " + kids[2])

my_function("Emil", "Tobias", "Linus")

Произвольные аргументы часто сокращаются до *args в документации Python.


Аргументы ключевых слов

Вы также можете отправлять аргументы с синтаксисом ключ = значение .

Таким образом, порядок аргументов не имеет значения.

Пример

def my_function(child3, child2, child1):
  print("The youngest child is " + child3)

my_function(child1 = "Emil", child2 = "Tobias", child3 = "Linus")

Фраза Аргументы ключевого слова часто сокращается до kwargs в документации Python.


Произвольные аргументы ключевого слова, **kwargs

Если вы не знаете, сколько ключевых слов будет передано в вашу функцию, добавьте две звездочки: **перед именем параметра в определении функции.

Таким образом, функция получит словарь аргументов и сможет соответственно получить доступ к элементам:

Пример

Если количество аргументов ключевого слова неизвестно, добавьте двойное **число перед именем параметра:

def my_function(**kid):
  print("His last name is " + kid["lname"])

my_function(fname = "Tobias", lname = "Refsnes")

Произвольные аргументы Kword часто сокращаются до **kwargs в документации Python.


Значение параметра по умолчанию

В следующем примере показано, как использовать значение параметра по умолчанию.

Если мы вызываем функцию без аргумента, она использует значение по умолчанию:

Пример

def my_function(country = "Norway"):
  print("I am from " + country)

my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")

Передача списка в качестве аргумента

Вы можете отправить аргумент любого типа в функцию (строка, число, список, словарь и т. д.), и внутри функции он будет рассматриваться как тот же тип данных.

Например, если вы отправляете список в качестве аргумента, он все равно будет списком, когда он достигнет функции:

Пример

def my_function(food):
  for x in food:
    print(x)

fruits = ["apple", "banana", "cherry"]

my_function(fruits)

Возвращаемые значения

Чтобы функция возвращала значение, используйте return оператор:

Пример

def my_function(x):
  return 5 * x

print(my_function(3))
print(my_function(5))
print(my_function(9))

Заявление о пропуске

functionопределения не могут быть пустыми, но если у вас по какой-то причине есть functionопределение без содержимого, поместите passоператор, чтобы избежать ошибки.

Пример

def myfunction():
  pass

Рекурсия

Python также допускает рекурсию функций, что означает, что определенная функция может вызывать сама себя.

Рекурсия является общей математической и программной концепцией. Это означает, что функция вызывает сама себя. Преимущество этого заключается в том, что вы можете перебирать данные для достижения результата.

Разработчик должен быть очень осторожен с рекурсией, так как может быть довольно легко написать функцию, которая никогда не завершится, или функцию, которая использует избыточное количество памяти или мощности процессора. Однако при правильном написании рекурсия может быть очень эффективным и математически элегантным подходом к программированию.

В этом примере tri_recursion() — это функция, которую мы определили для вызова самой себя («рекурсия»). Мы используем переменную k в качестве данных, которые уменьшаются ( -1 ) каждый раз, когда мы рекурсивно. Рекурсия заканчивается, когда условие не больше 0 (т.е. когда оно равно 0).

Новому разработчику может потребоваться некоторое время, чтобы понять, как именно это работает, лучший способ узнать это - протестировать и изменить его.

Пример

Пример рекурсии

def tri_recursion(k):
  if(k > 0):
    result = k + tri_recursion(k - 1)
    print(result)
  else:
    result = 0
  return result

print("\n\nRecursion Example Results")
tri_recursion(6)

Проверьте себя с помощью упражнений

Упражнение:

Создайте функцию с именем my_function.

:
  print("Hello from a function")