Как исправить ошибку ввода в Python 3 для функции? - PullRequest
0 голосов
/ 31 марта 2020

Как можно исправить

 error on input []: name 'xxx' is not defined

в их коде? Я почти уверен, что правильно определил «abcxyz», поэтому не знаю, как это решить.

1 Ответ

1 голос
/ 31 марта 2020

Похоже, у вас проблема с отступом. Ваши определения переменных находятся внутри функции, которая никогда не вызывается, в то время как остальная часть вашего кода находится в глобальной области и выполняется сразу после загрузки этого модуля. Таким образом, он не имеет доступа к переменным count_*.

Нечто подобное может больше соответствовать вашим первоначальным намерениям ...

import csv
def internet_histogram():
    count_6 = 0
    count_5 = 0
    count_4 = 0
    count_3 = 0
    count_2 = 0
    count_1 = 0
    with open("survey.csv",'r') as f:
        reader = csv.reader(f)
        with open("histogram.csv", 'w') as g:
            writer = csv.writer(g)
            next(reader)
            for line in reader:
                if int(line[3]) >= 30 and int(line[3]) <= 33:
                    if int(line[0]) == 2:
                        count_6 +=1
                    if line[2] != '':
                        if int(line[2]) == 1:
                            count_1 += 1
                        elif int(line[2]) == 2:
                            count_2 += 1
                        elif int(line[2]) == 3:
                            count_3 += 1
                        elif int(line[2]) == 4:
                            count_4 += 1
                        elif int(line[2]) == 5:
                            count_5 += 1
            arr = [[1, count_1], [2, count_2], [3, count_3], [4, count_4], [5, count_5], [6, count_6]]
            for i in arr:
                writer.writerow(i)

Не забудьте позвонить internet_histogram() где-то, если вам нужно, чтобы он работал как скрипт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...