Python 类型错误:'&燃气轮机=';在';列表';和';int';?

Python 类型错误:'&燃气轮机=';在';列表';和';int';?,python,Python,我不明白为什么会出现“>=”的错误,我想我可能打错电话了 def determineLetterGrade(字母GD,测试平均值): 如果(testAverage>=90)和(testAverage=87)和(testAverage=80和(testAverage=77)和(testAverage=70)和(testAverage=67)和(testAverage=60)和(testAverage 问题:我不明白为什么会出现“>=” 您正在尝试比较list类型的值与int类型的值 例如:test

我不明白为什么会出现
“>=”
的错误,我想我可能打错电话了

def determineLetterGrade(字母GD,测试平均值):
如果(testAverage>=90)和(testAverage=87)和(testAverage=80和(testAverage=77)和(testAverage=70)和(testAverage=67)和(testAverage=60)和(testAverage
问题:我不明白为什么会出现
“>=”

您正在尝试比较
list
类型的值与
int
类型的值

例如:
testAverage
属于
list
类型,
90
属于
int

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]))
def get_等级(平均值):
如果不存在(平均值、浮动值):
raise VALUERROR(“参数“average”必须是“float”类型,得到{}”
.格式(类型(平均值)))
对于r0,r1,g英寸((90.01100.0,“A”),(87.089.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.”):

如果average>=r0且average我已以Python可读格式修改了determineLetterGrade()函数:

def determine_letter_grade(test_average):
    if 90 <= test_average <= 100:
        letter_gd = "A."
    elif 87 <= test_average <= 89.99:
        letter_gd = "B+."
    elif 80 <= test_average <= 86.99:
        letter_gd = "B."
    elif 77 <= test_average <= 79.99:
        letter_gd = "C+. "
    elif 70 <= test_average <= 76.99:
        letter_gd = "C."
    elif 76 <= test_average <= 69.99:
        letter_gd = "D+."
    elif 60 <= test_average <= 66.99:
        letter_gd = "D. "
    else:
        letter_gd = "F."
    print(letter_gd)
def确定字母等级(测试平均值):

如果90如何调用
determineLetterGrade
?变量和函数名称应遵循带下划线的
小写形式。请包含所有相关代码和数据。请参阅:。请始终在问题中包含完整的错误回溯-这对于了解错误发生在何处以及导致错误的原因至关重要。我们需要知道调用
determinitelettergrade
时使用的参数。似乎您正在向
testAverage
传递一个列表。您还需要研究使用
elif
s来清理if语句。那么,为什么要使用分号?为什么要以那种方式使用
letegd
参数?为什么您正在编写
else if
而不是
elif
?为什么似乎要将文件对象传递给
writeSortedList()
而不是文件名,或者只是让它对字符串进行操作?我猜您也没有对该文件使用上下文管理器?为什么while循环使用计数器代替for循环?为什么调用
格式()
这样的函数,甚至是所有函数?这真的是Python吗?你是不是在拖拉?函数不应该返回值而不是打印它吗?这可能是一个糟糕的设计。我使用打印函数只是为了获得结果。如果你想存储并在以后使用它,可以使用return语句。让它返回值是更好的设计,这就是我要说的。
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]))
def determine_letter_grade(test_average):
    if 90 <= test_average <= 100:
        letter_gd = "A."
    elif 87 <= test_average <= 89.99:
        letter_gd = "B+."
    elif 80 <= test_average <= 86.99:
        letter_gd = "B."
    elif 77 <= test_average <= 79.99:
        letter_gd = "C+. "
    elif 70 <= test_average <= 76.99:
        letter_gd = "C."
    elif 76 <= test_average <= 69.99:
        letter_gd = "D+."
    elif 60 <= test_average <= 66.99:
        letter_gd = "D. "
    else:
        letter_gd = "F."
    print(letter_gd)