На предыдущем уроке мы рассмотрели операторы потока управления в Python, включая условные операторы и циклы. В этом уроке мы рассмотрим функции, которые представляют собой повторно используемые блоки кода, которые можно вызывать из любой точки вашей программы.
Функции Python
Функции Python — это повторно используемые блоки кода, которые выполняют определенную задачу. Они могут помочь нам организовать наш код, избежать повторений и улучшить читабельность и модульность.
Определение функций
Чтобы определить функцию в Python, мы используем ключевое слово def, за которым следует имя функции и набор скобок.
Общий синтаксис определения функции в Python:
def function_name(parameter1, parameter2,...): # function body return value # optional
Вот пример:
def greet(name): print("Hello, " + name + "!")
В этом коде мы определяем функцию приветствия, которая принимает один параметр с именем name. Внутри функции мы используем оператор печати для печати приветственного сообщения, включающего значение параметра имени.
Вызов функций
Чтобы вызвать функцию в Python, мы просто используем имя функции, за которым следует набор скобок. Внутри круглых скобок мы можем передать одно или несколько значений (разделенных запятыми), которые соответствуют параметрам, определенным в функции. Эти значения называются аргументами, и они назначаются параметрам в том порядке, в котором они появляются в определении функции.
Общий синтаксис вызова функции в Python:
function_name(argument1, argument2,…)
Вот пример:
greet("Alice")
В этом коде мы вызываем функцию приветствия и передаем значение «Алиса» в качестве параметра имени.
Давайте определим простую функцию, которая принимает два числа в качестве параметров и возвращает их сумму:
def add_numbers(a, b): # function body result = a + b # calculate the return result # return the sum
давайте вызовем функцию add_numbers, которую мы определили ранее, с другими аргументами:
add_numbers(3, 5) # call with 3 and 5 as arguments add_numbers(10, -2) # call with 10 and -2 as arguments add_numbers(7.5, 2.5) # call with 7.5 and 2.5 as arguments
Результат этих вызовов:
8 8 10.0
Обратите внимание: когда мы вызываем функцию, которая возвращает значение (например, add_numbers), мы можем присвоить это значение переменной или использовать его в выражении. Например:
sum = add_numbers(3, 5) # assign the return value to a variable print(sum) # print the variable print(add_numbers(10, -2) * 2) # use the return value in an expression
Вывод этого кода:
8 16
Определение и передача параметров и аргументов
В Python существует несколько способов определения и передачи параметров и аргументов функциям. Вот некоторые распространенные типы:
Позиционные параметры и аргументы:
- Позиционные параметры объявляются в определении функции, и их порядок имеет значение.
- Позиционные аргументы передаются в функцию по положению, соответствующему порядку параметров в определении функции.
Вот пример:
def greet(name, age): print("Hello, my name is", name, "and I am", age, "years old.") greet("Alice", 30)
В этом коде «Алиса» — это первый позиционный аргумент, соответствующий параметру name, а 30 — второй позиционный аргумент, который соответствует параметру age.
Параметры и аргументы ключевых слов:
- Параметры ключевых слов объявляются в определении функции, и их имена имеют значение.
- Аргументы ключевого слова передаются функции по имени, совпадающему с именами параметров в определении функции.
Вот пример:
def greet(name, age): print("Hello, my name is", name, "and I am", age, "years old.") greet(name="Bob", age=25)
В этом коде «Боб» передается в качестве аргумента имя, а 25 — в качестве аргумента возраст, используя их соответствующие имена параметров.
Произвольные параметры и аргументы:
- Произвольные параметры позволяют функции принимать произвольное количество аргументов.
- Произвольные аргументы передаются функции с использованием синтаксиса *args, который позволяет передавать любое количество аргументов.
Вот пример:
def greet(*names): for name in names: print("Hello,", name) greet("Alice", "Bob", "Charlie")
В этом коде «Алиса», «Боб» и «Чарли» передаются как произвольные аргументы с использованием *имен. , который создает кортеж всех аргументов.
Параметры и аргументы, содержащие только ключевые слова:
- Параметры, содержащие только ключевые слова, объявляются в определении функции после параметра звездочки (*) и могут передаваться только с использованием имен параметров.
- Аргументы, содержащие только ключевые слова, передаются в функцию с использованием соответствующих имен параметров.
Вот пример:
def greet(name, *, age): print("Hello, my name is", name, "and I am", age, "years old.") greet("Alice", age=30)
В этом коде «Алиса» передается в качестве аргумента имя, а 30 — в качестве аргумента возраст. используя его имя параметра. Поскольку параметр age содержит только ключевое слово, его можно передать только с использованием имени параметра.
Произвольные параметры и аргументы ключевого слова:
- Произвольные параметры ключевого слова позволяют функции принимать произвольное количество аргументов ключевого слова.
- Произвольные аргументы ключевого слова передаются в функцию с использованием синтаксиса **kwargs, который позволяет передавать любое количество аргументов ключевого слова.
Вот пример:
def greet(**kwargs): for key, value in kwargs.items(): print(key, "is", value) greet(name="Alice", age=30)
В этом коде «Алиса» передается в качестве аргумента ключевого слова name, а 30 — в качестве возраста. аргумент ключевого слова с использованием синтаксиса **kwargs, который создает словарь всех аргументов ключевого слова.
Понимание этих различных типов параметров и аргументов может быть очень полезным для создания гибких и многократно используемых функций в Python.
Возвращаемые значения
Функции также могут возвращать значения с помощью оператора return. Вот пример:
def add(x, y): return x + y
В этом коде мы определяем функцию add, которая принимает два параметра, x и y. Внутри функции мы используем оператор return для возврата суммы x и y.
Чтобы использовать значение, возвращаемое функцией, мы можем присвоить его переменной или использовать в выражении. Вот пример:
result = add(2, 3) print(result)
В этом коде мы вызываем функцию добавления с аргументами 2 и 3 и присваиваем значение, возвращаемое функцией, переменной result. Затем мы используем оператор печати для вывода значения результата, которое должно быть равно 5.
В этом уроке мы рассмотрели функции в Python, включая определение функций, вызов функций, возврат значений и использование параметров по умолчанию. Функции являются неотъемлемой частью программирования и позволяют создавать повторно используемые блоки кода, которые можно использовать в вашей программе. На следующем уроке мы рассмотрим более сложные темы, включая модули и обработку ошибок.