🐍 Python  ·  20 вопросов  ·  ~45 мин  ·  ⏱ Таймер 45:00  ·  Лёгкий  · 

Функции и параметры

Проверяет объявление функций, возврат значения, позиционные и именованные аргументы. Вопросы требуют проследить выполнение, сравнить близкие варианты и заметить условие, которое меняет результат в блоках «Определение функции», «Параметры», «Возврат значения» и «Аргументы по умолчанию». Все задания рассчитаны на CPython 3.12; отличия других реализаций или версий учитываются только там, где это прямо оговорено.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Версия: CPython 3.12. Выберите один ответ из четырёх. На 20 вопросов отведено не меньше 40 минут; код лучше читать построчно. После завершения вы увидите общий процент, четыре тематические шкалы и объяснение каждого ответа.
Вопрос 1 из 20
Что выведет код после создания функции?
Python
def add(a, b):
    print("внутри")
    return a + b

print("до")
result = add
print(callable(result))
Вопрос 2 из 20
Для сигнатуры `def connect(host, /, port=80, *, timeout=5): ...` какой вызов допустим?
Вопрос 3 из 20
Что напечатает функция без явного return?
Python
def log(value):
    print(value)

result = log(7)
print(result)
Вопрос 4 из 20
Один изменяемый аргумент по умолчанию используется дважды. Какие два списка напечатают вызовы?
Python
def collect(value, bucket=[]):
    bucket.append(value)
    return bucket

print(collect(1), collect(2))
Вопрос 5 из 20
Что выведет передача функции как аргумента?
Python
def apply(fn, value):
    return fn(value)

def square(x):
    return x * x

print(apply(square, 5))
Вопрос 6 из 20
Проследите вызов `f(1, 4, 5, 6, c=7, x=8)`: как значения распределятся между `a`, `b`, `args`, `c` и `kwargs`?
Python
def f(a, b=2, *args, c=3, **kwargs):
    return a, b, args, c, kwargs

print(f(1, 4, 5, 6, c=7, x=8))
Вопрос 7 из 20
Функция должна либо вернуть найденный объект, либо явно сообщить об отсутствии. Какой контракт яснее?
Вопрос 8 из 20
Что выведет вычисление значения по умолчанию?
Python
seed = 10
def f(value=seed):
    return value
seed = 99
print(f(), f(seed))
Вопрос 9 из 20
Что напечатает ранний return?
Python
def classify(x):
    if x < 0:
        return "minus"
    print("checked")
    return "other"

print(classify(-2))
Вопрос 10 из 20
С учётом позиционных и именованных параметров какой из показанных вызовов завершится `TypeError`?
Python
def area(width, height=1, *, unit="cm"):
    return width * height, unit
Вопрос 11 из 20
Чем `return value` принципиально отличается от `print(value)` внутри функции?
Вопрос 12 из 20
Как исправить функцию накопления, чтобы вызовы без списка были независимыми?
Вопрос 13 из 20
Что вернёт функция с несколькими значениями?
Python
def stats(values):
    return min(values), max(values), sum(values)

result = stats([3, 1, 4])
print(type(result).__name__, result)
Вопрос 14 из 20
Что произойдёт при распаковке **kwargs?
Python
def f(a, b):
    return a - b

params = {"a": 10, "b": 3}
print(f(**params))
Вопрос 15 из 20
Когда параметр, объявленный после одиночной `*`, особенно полезен?
Вопрос 16 из 20
Что выведет рекурсивная функция?
Python
def f(n):
    if n <= 1:
        return 1
    return n + f(n - 2)

print(f(6))
Вопрос 17 из 20
Функция одновременно вычисляет результат и пишет журнал. Какое проектное решение сделает вычисление легче тестировать?
Вопрос 18 из 20
Что напечатает вызов с позиционным только параметром?
Python
def ratio(a, b, /):
    return a / b

print(ratio(8, 2))
Вопрос 19 из 20
Почему слишком длинная функция с десятью логическими флагами в параметрах обычно трудна в использовании?
Вопрос 20 из 20
Значение параметра по умолчанию вычисляется при определении функции. Что напечатает фрагмент после изменения глобального `seed`?
Python
seed = 10

def f(x=seed):
    return x

seed = 20
print(f(), f(seed))

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу