Я действительно не знаю, как увеличить переменные, используя функцию с аргументом. Код ниже печатает 0 и 1, и я понимаю, почему, но я не знаю, как это исправить. Это просто общая "форма" кода, поэтому может быть любое количество переменных. Поймите, если вы посмотрите!
i=0
b=0
def increase(a):
print(a)
a+=1
print(a)
for e in range (3):
increase(i)
increase(b)
У Python нет ссылки на параметры, например c++ (знак &), поэтому вы можете использовать возвращаемую функцию.
i=0
b=0
def increase(a):
print(a)
a+=1
print(a)
return a
for e in range (3):
i = increase(i)
b = increase(b)
Там несколько продолжительная дискуссия о том, почему вы не можете делать то, что вы пытаетесь сделать так, как вы пытаетесь это сделать, но принятый ответ здесь должен быть вам полезен. По сути, все аргументы в Python передаются по объектной ссылке, поэтому, если вы переназначите значение в своей функции, используя имя параметра, вы не изменяете значение, на которое указывает переменная, переданная вашей функции.
То, что вы пытаетесь сделать, возможно, вам просто нужно передать свою функцию изменяемым типом, например, списком. Итак, если у вас есть следующий код, он должен делать то, что вы ожидаете/хотите из своего примера:
i=[0]
b=[0]
def increase(a):
a[0]+=1
for e in range (3):
increase(i)
increase(b)
print(i)
print(b)