如何解决,TypeError:“ float”对象不可迭代

时间:2019-03-22 16:03:04

标签: python python-3.x

我正在尝试编写一个计算成绩,计算平均值并在键入字母时显示错误的程序。我认为代码已基本完成,但是我对如何解决“ TypeError”感到困惑:“浮动”对象不可迭代”问题。

def calculate_average(total, count):
    average = total / count
    return average

while 1:
    try:
        grade = float(input("Enter a test score, or a negative number to get the average: "))
        total = sum(grade)
        count = len(grade)
        if grade < 0:
            break
        average = calculate_average(total, count)
        print("Total: ", total)
        print("Average:", round(average))
    except ValueError:
        print("BRUH")

1 个答案:

答案 0 :(得分:0)

很显然,您要用户输入多个数字。但是,在您的代码中,用户只能输入一个数字,并且显然不能对单个小号进行求和,也没有长度。

您需要一个包含所有成绩的列表,并且在用户输入所有成绩并输入负数之后,您可以评估该列表并计算平均值。

这是一个有效的示例:

def calculate_average(total, count):
    average = total / count
    return average

while 1:
        grades = []
        while 1:
            inp = input("Enter a test score, or a negative number to get the average: ")

            try:
                inpGrade = float(inp)

                if inpGrade > 0:
                    grades.append(inpGrade)
                elif inpGrade < 0:
                    break

            except ValueError:
                print("BRUH")

        total = sum(grades)
        count = len(grades)
        average = calculate_average(total, count)
        print("Total: ", total)
        print("Average:", round(average))
        break