@ace606

NameError: name 'symbol' is not defined. Где в коде ошибся?

Доброго времени суток. Не могу понять почему интерпретатор выдает ошибку. Хелп!
Функция в модуле.

Traceback (most recent call last):
  File "C:\Users\Ace\Desktop\работа\# Подсчет распространненых чисел POWERBALL.py", line 22, in <module>
    main()
  File "C:\Users\Ace\Desktop\работа\# Подсчет распространненых чисел POWERBALL.py", line 16, in main
    f_find_simbol_ver2.f_find_max(result)
  File "C:\Users\Ace\Desktop\работа\f_find_simbol_ver2.py", line 53, in f_find_max
    return symbol.append(n)
NameError: name 'symbol' is not defined

import f_find_simbol_ver2
symbol = []
frequency = []
def main():
    global symbol 
    global frequency 
    infile = open('POWERBALL2.txt', 'r')
    line = infile.readline()
    result = ''
    while line != '':
        result += line.rstrip('\n')
        result += ' '
        line = infile.readline()
    infile.close()    
    f_find_simbol_ver2.f_find_max(result)
main()

def f_find_max(x):
    global symbol
    global frequency
    x = x.split(' ')
    n = x[0]
    stop = False
    total = 0
    for ch in x:
        if n == ch:
            total += 1
    result = []
    result2 = []
    length = len(x)
    total2 = 0
    no_search = []
    no_search.append(n)
    for index in range(1, length, 1):
        for i in no_search:
            if str(i) == str(x[index]):
                stop = True
        if stop == False:
            for c in x:
                if str(x[index]) == str(c):
                    total2 += 1
            if total < total2:
                n = x[index]
                total = total2
                total2 = 0
                result = []
                result2 = []
                no_search.append(x[index])
            elif total == total2:
                result.append(x[index])
                result2.append(total2)
                no_search.append(x[index])
                total2 = 0
            else:
                total2 = 0
                no_search.append(x[index])
        stop = False
    if result != []:
        result.append(n)
        result2.append(total)
        for e in result:
            symbol.append(e)
        for e2 in result2:
            frequency.append(e2)
    else:
        print('Символ, который появляется наиболее часто', n, sep = ' ')
        print(n) 
        print(total)
        symbol.append(n)
        frequency.append(total)
  • Вопрос задан
  • 275 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
В разных модулях разные global переменные.
Вообще global лучше не использовать без необходимости.
Принимай списки, которые нужно заполнить, как параметры метода. А лучше - создавай их внутри метода и возвращай кортежем: return symbol, frequency. Ну или напиши простенький класс.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы