def no_return():
    x = 10
print(no_return())
no_return() не возвращает никакого значения. Когда функция заканчивается без явного оператора return, она неявно возвращает None.  Следовательно, print(no_return()) выведет на экран сначала значение x=10, которое печатается внутри функции, а затем None, которое возвращает функция и печатается внешней функцией print().
Вопрос: Что выведет следующий код?
def no_return():
  x = 10
  print(no_return())
Ответ:
Код выведет None.
Объяснение:
no_return() присваивает значение 10 переменной x.return.return, она по умолчанию возвращает None.print(no_return()) вызывается функция no_return().  Функция выполняет присваивание, а затем неявно возвращает None.print() выводит значение, возвращенное функцией no_return(), которое, как мы выяснили, равно None.