Почему мой код не увеличивает счетчик?

У меня есть функция (из части моего кода), которая должна увеличивать счетчик всякий раз, когда я запускаю функцию, однако счетчик остается равным 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 18.03.2022 11:40

@Sayse Мой плохой! Теперь я вижу, что я сделал не так, спасибо.

Krish 18.03.2022 11:43
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
35
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Каждый раз, когда вы инициализируете функцию, значение устанавливается равным 0.

 csv_team_count = 0

После того, как вы увеличите до 1, но если вы снова вызовете функцию, она будет установлена ​​​​на 0. Это значение необходимо установить вне функции и передать как arg.

почему? кажется, что он используется только внутри функции

Sayse 18.03.2022 11:44

Точно. Подумайте об этом, каждый раз, когда вы вызываете функцию, первое, что она говорит, это «УСТАНОВИТЕ СЧЕТЧИК НА 0». Поэтому, даже если после этого вы увеличите приращение, при повторном вызове он скажет то же самое, и значение будет установлено на 0. Вот почему это нужно сказать вне функции, поэтому, когда вы вызываете функцию, она не устанавливает значение до 0, просто увеличьте его

Jay Morelli 18.03.2022 11:49

Как я могу вызвать глобальную переменную внутри функции?

Krish 18.03.2022 11:51

Будьте осторожны с изменением значения глобальных переменных внутри функции. В любом случае вам нужно объявить вне функции и передать значение в качестве аргумента.

Jay Morelli 18.03.2022 11:55

Другие вопросы по теме