Python 3.4'无法分配给函数

2024-09-29 23:27:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个程序,它可以从各种文本文件中调用数据,并以用户选择的各种方式显示数据。我对Python不是很熟悉(我从互联网上收集的一些代码),我的代码中可能有很多错误。当我运行代码时,我得到一个'不能分配给函数调用'错误。有人知道这里怎么了吗?谢谢

from time import sleep
import sys

for i in range(21):
    sys.stdout.write('\r')
    sys.stdout.write("[%-20s] %d%%" % ('='*i, 5*i))
    sys.stdout.flush()
    sleep(0.25)

print('\nWelcome to The Arithmatic Quiz: Teacher Eddition.')

UserName = input('Please input your user name and press enter.')

if UserName == 'MrSmith':
    print ('Please proceed.')

else:
    quit()

Password = input('Please input your password and press enter.')

if Password == 'Maths':
    print ('Welcome Mr Smith.')

else:
    quit()

import csv
import operator

classdata = 0
while classdata == 0:

    Class = input ('Which class do you want the data for?')

    Display = input ('How do you want the data t be sorted? Alphabetically          (A), on highest score for the first try (H1), on highest score for the second try (H2), on highest score for the third try (H3), or average score (Avg)?')

if Class == '1':
    Class_1 = open('class_1.txt','r')

    csv1 = csv.reader(Class_1,delimiter=',')

    if Display == 'A':
        sortA = sorted(csv1,key=operator.itemgetter(1))

        for eachline in sortA:
            print (eachline)

    if Display == 'H1':
        sortB = sorted(csv1,key=operator.itemgetter(2))

        for eachline in sortB:
            print (eachline)

    if Display == 'H12':
        sortB = sorted(csv1,key=operator.itemgetter(3))

        for eachline in sortB:
            print (eachline)

    if Display == 'H3':
        sortB = sorted(csv1,key=operator.itemgetter(4))

        for eachline in sortB:
            print (eachline)

    elif Display == 'Avg':
        sortC = sorted(csv1,key=operator.itemgetter(5))

        import csv
        from collections import Counter

        def average_column (csv_filepath):
            row_totals = Counter()
            with open('Class_1',"rb") as f:
                reader = csv.reader(f)
                column_count = 0.0
                for column in reader:
                    for row_idx, row_value in enumerate(column):
                        try:
                            n = float(row_value)
                            row_totals(row_idx) += n
                            column_count += 1.0
                            column_count -= 1.0
                            row_indexes = row_totals.keys()
                            row_indexes.sort()
                            averages = (row_totals(idx)/column_count for idx in row_indexes)
                            print(averages)
                        except:
                            pass

Tags: csvinimportforinputifdisplaycolumn
2条回答

row_totals[row_idx]替换row_totals(row_idx)的所有实例。你知道吗

在此行中:

row_totals(row_idx) += n

您正在尝试分配给函数。你不能那样做。您可能想做的是将函数的结果赋给一个变量,如

n += row_totals(row_idx)

希望这有帮助。你知道吗

相关问题 更多 >

    热门问题