Решение модуля 15.2 Поколение Python: для продвинутых

Модуль 15.2 (Функции с переменным количеством аргументов) курса «Поколение Python: курс для продвинутых» курс расскажет о:

  • Позиционные аргументы
  • Необязательные аргументы
  • Именованные аргументы

Публикуем решения на урок 15.2 Функции с переменным количеством аргументов.

Какое значение выведет на экран следующий код?

def f(n=3):
return n + 7

print(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))

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Adblock
detector