Есть функция def f(x): print(x). Чему будет равна переменная res после кода res = f(3)?

AЗначение None: функция без return неявно возвращает None при любом теле
BЧисло 3: значение из вызова print(x) становится результатом функции f(3)
CСтрока '3': строковое представление, в которое print приводит число при выводе
DTypeError: исключение возникает при присваивании результата функции без return
Правильный ответ. Если в функции нет return, результат вызова — None, даже если внутри что-то печатается.

Разбор

Функция f вызывает print(x), поэтому на экран выведется число 3. Но возвращаемого значения нет, и Python неявно возвращает None, поэтому res = f(3) присваивает res значение None. В аналитическом коде это важно: функции, результат которых нужен дальше, должны явно возвращать данные через return, а не только печатать. Никакого TypeError тут не будет — присваивание None совершенно валидно.

Проверь себя · 1/3разбор после ответа
Есть функция def f(a, b): return a + b. Что произойдёт при вызове f(1, a=2)?
Тренировать Python в Telegram

Ещё вопросы по теме «Функции и аргументы»