У меня есть функция (из части моего кода), которая должна увеличивать счетчик всякий раз, когда я запускаю функцию, однако счетчик остается равным 1. Что я делаю неправильно? Заранее спасибо.
def add_a_team():
csv_team_count = 0
team_adder = []
csv_team_count += 1
print(csv_team_count)
if csv_team_count <4:
for i in range(0,6):
name = str(input("You are now entering the data for Team 1.\nYou will see this 6 times, enter the team's name first then the members, all individually."))
team_adder.append(name)
else:
print("Team count of 4 has been filled in! You cannot add another team!")
print("\n")
with open('teams.csv', 'a', newline = '', encoding='UTF8') as f:
writer = csv.writer(f)
#writing the data for each team.
writer.writerow(team_adder)
f.close()
@Sayse Мой плохой! Теперь я вижу, что я сделал не так, спасибо.
Каждый раз, когда вы инициализируете функцию, значение устанавливается равным 0.
csv_team_count = 0
После того, как вы увеличите до 1, но если вы снова вызовете функцию, она будет установлена на 0. Это значение необходимо установить вне функции и передать как arg.
почему? кажется, что он используется только внутри функции
Точно. Подумайте об этом, каждый раз, когда вы вызываете функцию, первое, что она говорит, это «УСТАНОВИТЕ СЧЕТЧИК НА 0». Поэтому, даже если после этого вы увеличите приращение, при повторном вызове он скажет то же самое, и значение будет установлено на 0. Вот почему это нужно сказать вне функции, поэтому, когда вы вызываете функцию, она не устанавливает значение до 0, просто увеличьте его
Как я могу вызвать глобальную переменную внутри функции?
Будьте осторожны с изменением значения глобальных переменных внутри функции. В любом случае вам нужно объявить вне функции и передать значение в качестве аргумента.
Где вы ожидаете, что он будет расти более одного раза, если вы увеличите его только один раз?