首页 > 解决方案 > TypeError:'list'和'int'的实例之间不支持'> ='?

问题描述

我不明白为什么我会收到错误,">="我认为我可能称错了。

TypeError: '>=' not supported between instances of 'list' and 'int'?
def determineLetterGrade(letterGd, testAverage):

    if (testAverage >= 90) and (testAverage <= 100):
        letterGd = "A.";
    else:
        if (testAverage >= 87) and (testAverage <= 89.99):
            letterGd = "B+.";
        else:
            if  (testAverage >= 80 and (testAverage <= 86.99)):
                letterGd = "B."
            else:
                if  (testAverage >= 77) and (testAverage <= 79.99):
                    letterGd = "C+. ";
                else:
                    if  (testAverage >= 70) and (testAverage <= 76.99):
                        letterGd = "C.";
                    else:
                        if  (testAverage >= 67) and (testAverage <= 69.99):
                            letterGd = "D+.";
                        else:      
                            if (testAverage >= 60) and (testAverage <= 66.99) :                  
                                letterGd = "D. ";
                            else:                       
                                letterGd = "F.";  
    return letterGd; 

def writeSortedList(count, finalCount, name, testAverage, outFile):
    count = 0;
    outFile.write("SORTED TEST AVERAGE LIST (LOWEST TO HIGHEST)" + "\n"); #writes the Label/title
    outFile.write("=" * 110 + "\n");
    while (count < finalCount):
        outFile.write(format(format(name[count], "30s") + format(" : ", "^5s") + format(testAverage[count], "6.2f") +  format(" -> ", "^5s") +  + "\n"));
        count = count + 1;
        #end while loop
    outFile.write("=" * 110 + "\n");
    outFile.write("\n");
    # End writeSortedList function

标签: python

解决方案


问题:我不明白为什么我得到错误">="

您正在尝试将 typelist的值与type 的值进行比较int

eg: testAverageis of type listand 90is of typeint

testAverage >= 90

考虑以下:

def get_grade(average):
    if not isinstance(average, float):
        raise ValueError("Argument 'average' have to be of type 'float', got {}"
                  .format(type(average)))

    for r0, r1, g in ((90.0, 100.0, "A."), (87.0, 89.99, "B+."), 
                      (80.0, 86.99, "B."), (77.0, 79.99, "C+."), 
                      (70.0, 76.99, "C."), (67.0, 69.99, "D+."), 
                      (60.0, 66.99, "D.")):
        if average >= r0 and average <= r1:
            return g
    else:                       
        return "F."

print(get_grade([67.0]))

这将抛出:
ValueError: Argument 'average' have to be of type 'float', got <class 'list'>

但是这样做: print(get_grade(67.0))将输出:D+.


推荐阅读