Объясните, пожалуйста, почему функция выводит не то, что по идее должна выводить

Объясните, пожалуйста, почему, когда я пишу

def updatenumber(n):
     n *= 2
b = 8
updatenumber(b)
print(b)

выводится 8, а не 16. Ведь я задал функцию, которая должна умножить заданное число на 2. Разве не должно быть так:

  1. создана функция, умножающая число на 2.
  2. задается число b = 8.
  3. Впихиваем в аргумент функции число b.
  4. Создана новая переменная, значение которой равно 16.

В чем ошибка?


Ответы (1 шт):

Автор решения: Danis

переменная n существует только внутри функции updatenumber после завершения функции n исчезает

можете добавить return чтобы b был равен 16

def updatenumber(n):
     n *= 2
     return n
b = 8
b = updatenumber(b)
print(b)
→ Ссылка