В языке программирования Python существует возможность создавать функции, которые могут принимать произвольное количество аргументов. Это очень удобно, когда заранее неизвестно точное число передаваемых значений.
Неопределённое количество позиционных аргументов (*args)
Позиционные аргументы передаются в функцию как обычный список (или кортеж). Для этого используется специальный синтаксис *args, где args – это имя переменной, которая будет содержать все переданные значения.
Пример:
def sum_numbers(*numbers):
total = 0
for number in numbers:
total += number
return total
print(sum_numbers(1, 2, 3)) # Вывод: 6
print(sum_numbers(10, 20, 30, 40)) # Вывод: 100
Здесь функция sum_numbers принимает любое количество чисел и складывает их вместе. Аргумент *numbers собирает все переданные числа в одну последовательность.
Неопределённое количество именованных аргументов (**kwargs)
Именованные аргументы передаются в виде словаря (dict), используя синтаксис **kwargs. Здесь kwargs – это имя переменной, содержащей словарь всех переданных именованных аргументов.
Пример:
def print_user_info(**info):
for key, value in info.items():
print(f"{key}: {value}")
print_user_info(name="Иван", age=25, city="Москва")
# Вывод:
# name: Иван
# age: 25
# city: Москва
Функция print_user_info выводит информацию о пользователе, принимая любые именованные параметры. Например, можно передать имя пользователя, его возраст и город проживания.
Комбинирование *args и **kwargs
Можно комбинировать оба типа аргументов в одной функции. Обычно *args ставится перед **kwargs.
Пример:
def calculate_and_print(a, b, *args, option=True, **kwargs):
result = a + b
for arg in args:
result += arg
if option:
print("Результат:", result)
for key, value in kwargs.items():
print(f"Дополнительная информация: {key} = {value}")
calculate_and_print(5, 7, 8, 9, option=False, unit="см", color="синий")
# Вывод:
# Дополнительная информация: unit = см
# Дополнительная информация: color = синий
В этом примере функция сначала складывает два обязательных параметра a и b, затем добавляет к результату все дополнительные числовые аргументы из *args. Если параметр option равен True, то выводится результат вычислений. Также функция может получать дополнительные именованные параметры через **kwargs и выводить их.
Заключение
Использование функций с неопределённым количеством параметров позволяет сделать код более гибким и универсальным. Это особенно полезно при работе с динамическими данными, когда нужно обрабатывать списки или словари неизвестной длины.
Источник: https://stepik.org/lesson/1583926/step/1?unit=1605282
Было ли это полезно?
0 / 0