Модуль 15.2 (Функции с переменным количеством аргументов) курса «Поколение Python: курс для продвинутых» курс расскажет о:
- Позиционные аргументы
- Необязательные аргументы
- Именованные аргументы
Публикуем решения на урок 15.2 Функции с переменным количеством аргументов.
Какое значение выведет на экран следующий код?
def f(n=3):
return n + 7print(f(f(f())))
24
Какое количество аргументов может принять следующая функция?
def func(x, y, *args):
два и больше
Какое значение выведет на экран следующий код?
def func(x, y, *args):
return len(args)print(func(10, 20, 30, 40, 50, 60))
4
Какое значение выведет на экран следующий код?
def func(*args):
return max(args) + min(args)print(func(10, 15, *[31, 42, 5, 1], *(17, 28, 19, 100), 13, 12))
101
Как следует именовать в определении функции параметр, призванный получать при вызове все позиционные аргументы?
*args
Как следует именовать в определении функции параметр, призванный получать при вызове все именованные аргументы?
**kwargs
Выберите правильное объявление функции
func()
, чтобы можно было успешно выполнить следующие вызовы функции:func(5, 6, 13, 17, 56)
func(2, 7)
def funс(*args)
Каков правильный порядок использования аргументов
*args
,**kwargs
и позиционных аргументовfargs
в заголовке функцииfunc
?
func(fargs, *args, **kwargs)
Напишите функцию
count_args()
, которая принимает произвольное количество аргументов и возвращает количество переданных в нее аргументов.Примечание 1. Обратите внимание, что функция должна принимать не список, а именно произвольное количество аргументов.
def count_args(*args):
return len(args)
Напишите функцию
sq_sum()
, которая принимает произвольное количество числовых аргументов и возвращает сумму их квадратов.
def sq_sum(*args):
sp=[i*i for i in args]
return sum(sp)
Напишите функцию
mean()
, которая принимает произвольное количество аргументов и возвращает среднее арифметическое переданных в нее числовых (int
илиfloat
) аргументов.
def mean(*args):
lst = [i for i in args if type(i) == int or type(i) == float]
try:
return sum(lst)/len(lst)
except:
return 0.0
Напишите функцию
greet()
, которая принимает произвольное количество аргументов строк имен (как минимум одно) и возвращает приветствие в соответствии с образцом.
def greet(pal, *args):
folk = ' and '.join((pal,) + args)
return f"Hello, {folk}!"
Напишите функцию
print_products()
, которая принимает произвольное количество аргументов и выводит список продуктов (любая непустая строка) по образцу:<номер продукта>) <название продукта>
(нумерация продуктов начинается с единицы). Если среди переданных аргументов нет ни одного продукта, необходимо вывести текстНет продуктов
.
def print_products(*products):
filtered = [product for product in products if product and isinstance(product, str)]
if filtered:
for indx, product in enumerate(filtered, 1):
print(f"{indx}) {product}")
else:
print("Нет продуктов")
Напишите функцию
info_kwargs()
, которая принимает произвольное количество именованных аргументов и печатает именованные аргументы в соответствии с образцом:<имя аргумента>: <значение аргумента>
, при этом имена аргументов следуют в алфавитном порядке (по возрастанию).
def info_kwargs(**kwargs):
for key, value in sorted(kwargs.items()):
print(key + ": " + str(value))
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы