2017-01-30 3 views
0

У меня есть .txt-файл с строками оценок, которые мне нужны для вычисления средних значений. Я действительно ударил стену, выясняя, как получить функцию усреднения для повторения каждой строки текстового файла. По какой-то причине я получаю синтаксическую ошибку, если есть нечетное количество строк. И когда количество строк равно даже python возвращает каждые другие линии. Вот мой код.Средние значения для нескольких строк текстового файла, Python 3

with open('grades.txt','r') as source: 
def toNumbers(): 
    global t 
    g = source.readline() 
    t = eval(g) 
def sumList(variable): 
    a = sum(variable)/len(variable) 
    print('average:', round(a)) 
for lines in source: 
    toNumbers() 
    sumList(t) 

Спасибо.

ответ

0

Вы должны изменить свой tonumbers() функцию, чтобы быть:

def toNumbers(line): 
    res = eval(line) 
    return res 

И ваш основной цикл будет:

for line in source.read(): 
    t = toNumbers(line) 
    sumList(t) 

В общем использовании global не рекомендуется, вы должны попытаться обойти его использования используя аргументы и возвращающие результаты. Надеюсь, я помог!