Потому что функция
не сохраняет значение, а только возвращает.
Для того, чтобы переменная изменилась, надо написать так:
x = 15
def ne_pridumal_kak_nazvat(chislo):
chislo += 1
return chislo # возвращаем значение
x = ne_pridumal_kak_nazvat(x)
print(x) # 16
или так (
не рекомендуется)
x = 15
def ne_pridumal_kak_nazvat():
global x
x += 1
ne_pridumal_kak_nazvat()
print(x) # 16
В первом случае мы передаем в функцию число x = 15, прибавляем к нему 1, возвращаем полученное число и
записываем как новый x.
Во втором случае мы создаем глобальную переменную x (то есть она доступна как в функции, так и вне нее), поэтому все изменения, которые мы будем делать отразятся на x (еще раз повторю: крайне не рекомендую использовать глобальные переменные).
Во второй функции со списком мы передаем список и
добавляем к нему значение, а не формируем список с (элементы прошлого списка) + (еще элемент), поэтому все изменения, опять же, отразятся на списке.