Пропустить до содержимого

Как использовать необязательные параметры в Python?

[

Использование необязательных параметров Python при определении функций


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

В этом руководстве вы узнаете:

  • Чем отличаются параметры и аргументы
  • Как определить функции с необязательными аргументами и значениями параметров по умолчанию
  • Как определить функции с использованием args и kwargs
  • Как работать с сообщениями об ошибках, связанными с необязательными аргументами

Бесплатный бонус: Щелкните здесь, чтобы получить шпаргалку по Python и ознакомиться с основами Python 3, такими как работа с типами данных, словарями, списками и функциями Python.

Создание функций в Python для повторного использования кода

Функцию можно рассматривать как мини-программу, выполняющуюся внутри другой программы или другой функции. Главная программа вызывает мини-программу и передает информацию, которая будет ей необходима в процессе выполнения. Когда функция завершает все свои действия, она может вернуть некоторые данные обратно в главную программу, которая ее вызвала.

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

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

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

Определение функций без входных параметров

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

Начните с создания списка покупок:

shopping_list = {
"Bread": 1,
"Milk": 2,
"Chocolate": 1,
"Butter": 1,
"Coffee": 1,
}

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

Далее вы можете определить функцию print_shopping_list, которая принимает список покупок в качестве аргумента и печатает его:

def print_shopping_list(shopping_list):
for item, quantity in shopping_list.items():
print(f"{item}: {quantity}")

Теперь вы можете вызывать эту функцию, передавая ей ваш список покупок:

print_shopping_list(shopping_list)

Результатом будет вывод списка покупок в консоль:

Bread: 1
Milk: 2
Chocolate: 1
Butter: 1
Coffee: 1

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

Теперь представьте, что вы хотите добавить функциональность для печати цены товаров вместе со списком покупок. Определите функцию print_shopping_list с дополнительным аргументом show_price и значением по умолчанию False:

def print_shopping_list(shopping_list, show_price=False):
for item, quantity in shopping_list.items():
if show_price:
print(f"{item}: {quantity} $")
else:
print(f"{item}: {quantity}")

Вы можете вызвать функцию без указания show_price и она будет печатать только список покупок без цен:

print_shopping_list(shopping_list)

Результатом будет вывод списка покупок без цен:

Bread: 1
Milk: 2
Chocolate: 1
Butter: 1
Coffee: 1

Вы также можете вызвать функцию с указанием show_price в значение True, чтобы печатать список покупок с ценами:

print_shopping_list(shopping_list, show_price=True)

Результатом будет вывод списка покупок с ценами:

Bread: 1 $
Milk: 2 $
Chocolate: 1 $
Butter: 1 $
Coffee: 1 $

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

Использование args и kwargs

Иногда вам может потребоваться определить функцию, которая может принимать любое количество аргументов или ключевых аргументов. В Python это можно сделать, используя *args для аргументов и **kwargs для ключевых аргументов.

Функции, принимающие любое количество аргументов

Рассмотрим пример функции add_numbers, которая принимает любое количество чисел и возвращает их сумму:

def add_numbers(*args):
return sum(args)

Вы можете вызвать эту функцию с любым количеством чисел:

result = add_numbers(1, 2, 3, 4, 5)
print(result) # Выведет: 15

Функции, принимающие любое количество ключевых аргументов

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

def print_scores(**kwargs):
for student, score in kwargs.items():
print(f"{student}: {score}")

Вы можете вызвать эту функцию с любым количеством студентов и их оценками:

print_scores(John=90, Emma=95, Alex=87)

Результатом будет вывод оценок студентов в консоль:

John: 90
Emma: 95
Alex: 87

Таким образом, использование *args и **kwargs позволяет определить функции, которые могут принимать любое количество аргументов или ключевых аргументов, соответственно.

Заключение

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