Правильный ответ выделен желтым
Скачать 47.48 Kb.
|
ОПРОСЫ (неделя 2) Правильный ответ выделен желтым НЕДЕЛЯ 2 ОПРОС №2.1 Функция def f(a,b): ... return a+b применима: Вопрос 1 к целым числам к вещественным числам к спискам к строкам к словарям Объяснение правильного ответа. Операция + замечательно применяется к строкам, числам, кортежам, спискам Даны функции: 1. >>> def f1(a,b): return a+b 2. >>> def f2(a,b): print(a+b) 3. >>> def f3(a,b): global summ summ=a+b Какая из функций отвечает правилам функционального программирования? Вопрос 2 ни одна 1 1 и 2 1 и3 все Объяснение правильного ответа. Функции должны возвращать значения Каким из приведенных способов возможно применение функции к списку a=list(range(5)) для возведения всех элемента списка в квадрат? >>> def f4(x): return x**2 к элементам списка a=list(range(5))? Вопрос 3 a=[f4(i) for i in a] >>> for i in a: i=f4(i) for i in a: i=f4(i) a=list(map(f4,a)) a=map(f4,a) Объяснение правильного ответа. map осуществляет применение функции к всем элементам списка, a=[f4(i) for i in a] использует возможности list comprehensions. Какая из приведенных функций правильно описывается т вызывается параметрами по-умолчанию: 1: >>> def f1(a,b=5): return a+b >>> a=f1(3,4) 2: >>> def f1(a,b=5): return a+b >>> a=f1(3) 3: >>> def f1(a=5,b=5): return a+b >>> a=f1(3,4) 4: >>> def f1(a=5,b): return a+b >>> a=f1(3,4) 5: >>> def f1(a=5,b=5): return a+b >>> a=f1() Вопрос 4 1 2 3 4 5 Объяснение правильного ответа. Параметры, задаваемые по умолчанию, должны следовать обязательно за обычными параметрами. При вызове функции с параметрами по умолчанию: >>> def f1(a=5,b=5): return a+b укажите правильные варианты вызова функции: Вопрос 5 f1() f1(a=4,b=5) f1(4,z=7) f1(4,b=7) f1(a=4,5) Объяснение правильного ответа. Параметры, задаваемые по умолчанию, должны следовать обязательно за обычными параметрами. Для передачи в функцию кортежей и списков используется запись: Вопрос 6 def f2(*args): def f2(**args): def f2(*kwargs): def f2(**kwargs): def f2(args): Объяснение правильного ответа. Для передачи произвольного индексируемых значений используется *. Для передачи в функцию словарей используется запись: Вопрос 7 def f2(*args): def f2(**args): def f2(*kwargs): def f2(**kwargs): def f2(args): Объяснение правильного ответа. Для передачи произвольного значений с ключом используется **. Даны две функции: >>> def f1(a,b): return a+b >>> def f2(a,b): return a*b Каким образом должна быть записана функция, принимающая в качестве одного из параметров имя вышеописанных функций и ее вызов: Вопрос 8 def ff(f,a,b): return f(a,b) ff(f1,3,4) def ff(a,b,f): return f(a,b) ff(3,4,f1) def ff(f,a,b): return f(a,b) ff(f=f1,3,4) def ff(f,a,b): return f(a,b) ff(3,4,f=f1) def ff(f,a,b=6): return f(a,b) ff(f1,3) Объяснение правильного ответа. Функции в Python являются объектами и могут быть переданы в другие функции в качестве параметра. ОПРОС №2.2 Каково основное отличие функций, описываемых с помощью def и lambda Вопрос 1 lambda использует 1 параметр lambda записывается в 1 строку lambda не использует сложных условий lambda не имеет имени lambda не может быть использовано в map() Объяснение правильного ответа. Определение lambda Каким образом можно использовать lambda для возведения в степень 2 всех элементов списка a, состоящего из чисел? Вопрос 2 z=lambda x: x*x a=list(map(z,a)) a=list(map(lambda x:x*x,a)) a=list(map(lambda x:x**2,a)) z=lambda x: x**2 a=list(map(z,a)) a=lambda a:a*a Объяснение правильного ответа. lambda является функцией и ничто функциональное ей не чуждо. Какой результат выдаст следующее выражение: from functools import reduce a=list(range(5)) a1=reduce(lambda x,y:x*y,a) Вопрос 3 24 1 0 96 48 Объяснение правильного ответа. reduce производит операции с накоплением результата, а элемент a[0]=0/ |