Сначала выводится beegeek, затем на новой строке None. Внутренний print возвращает None, который печатает внешний print.
Что выведет вложенный вызов функции print
Сначала выводится beegeek, затем на новой строке None. Внутренний print возвращает None, который печатает внешний print.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
В данном фрагменте используется вложенный вызов функции print. Какой результат появится в стандартном выводе? Выберите один из вариантов ответа.
Варианты:
- beegeek
- beegeek None
- beegeek beegeek
- ошибка
- print('beegeek')
s = 'python'
print(print('beegeek'))
Ответ
Сначала выводится beegeek, затем на новой строке None. Внутренний print возвращает None, который печатает внешний print.
Аргументы функции вычисляются до её вызова. Поэтому сначала выполняется print('beegeek'): он записывает текст и перевод строки, а результатом его вызова является None.
Внешний вызов фактически превращается в print(None):
beegeek
None
Среди вариантов этому соответствует «beegeek None», если не учитывать форматирование строк. Переменная s='python' здесь никак не используется. Функция print предназначена для побочного эффекта вывода, а не для возвращения напечатанной строки; для сборки строки используют форматирование или конкатенацию.