Python 为什么每件事都打印相同的字母等级?

Python 为什么每件事都打印相同的字母等级?,python,python-3.4,Python,Python 3.4,我的任务是创建一个程序,打开并读取文本文件,计算成绩(包括平均权重),给出最终成绩,将其更改为字母成绩,然后将其写入新的文本文件。在分数转换成字母等级之前,一切都很顺利。所有的分数都在70-89之间,所以我没有为A、B或E(F)添加任何其他代码。每当我试图将分数转换为字母分数时,每个人的分数都会变为C。我哪里出错了 infile = open("c:\\Python34\\MyFiles\\ClassGradebook.txt","r") outfile = open("c:\\Python

我的任务是创建一个程序,打开并读取文本文件,计算成绩(包括平均权重),给出最终成绩,将其更改为字母成绩,然后将其写入新的文本文件。在分数转换成字母等级之前,一切都很顺利。所有的分数都在70-89之间,所以我没有为A、B或E(F)添加任何其他代码。每当我试图将分数转换为字母分数时,每个人的分数都会变为C。我哪里出错了

infile = open("c:\\Python34\\MyFiles\\ClassGradebook.txt","r")  
outfile = open("c:\\Python34\\myfiles\\ClassGrades.txt","w") 

aline = infile.readline()  # uses readline method to read the first line of the file

def quizsum():
        quizsum1 = quiz1 + quiz2 + quiz3
        quizavg = (quizsum1 / 30) * .3
        return float(quizavg)

def midtermsum():
        midtermsum1 = midterm1 + midterm2
        midtermavg = (midtermsum1 / 200) * .4
        return float(midtermavg)

def finalsum():
        finalsum1 = final1
        finalavg = (finalsum1 / 100) * .3
        return float(finalavg)
def lettergrade():
        if printedgrade >= 70 <= 79:
                return "C"
        else:
                return "B"       

while aline:
        items = aline.split()   
        dataline = items[0] + " " + items[1] 
        quiz1 = int(items[2])
        quiz2 = int(items[3])
        quiz3 = int(items[4])
        midterm1 = int(items[5])
        midterm2 = int(items[6])
        final1 = int(items[7])
        quizavg = quizsum()
        midtermavg = midtermsum()
        finalavg = finalsum()
        gradetotal = quizavg + midtermavg + finalavg
        printedgrade = gradetotal * 100
        printedgrade2 = lettergrade()
        print(dataline)
        print(printedgrade2)
        outfile.write(printedgrade2 + '\n')   newline character
        aline = infile.readline()   

infile.close()  
outfile.close()  
infle=open(“c:\\Python34\\MyFiles\\ClassGradebook.txt”,“r”)
outfile=open(“c:\\Python34\\myfiles\\ClassGrades.txt”,“w”)
aline=infle.readline()#使用readline方法读取文件的第一行
def quizsum():
quizsum1=quiz1+quiz2+quiz3
quizavg=(quizsum1/30)*.3
返回浮动(quizavg)
def midtermsum():
中期SUM1=中期1+中期2
中期平均值=(中期SUM1/200)*.4
返回浮动(中期平均值)
def finalsum():
finalsum1=final1
finalavg=(finalasum1/100)*.3
返回浮动(最终浮动)
def lettergrade():

如果printedgrade>=70,因为您的
if
总是求值为true,因为它是无序的。应该是:


70因为您的
if
总是计算为true,因为它是无序的。应该是:


70因为您的
if
总是计算为true,因为它是无序的。应该是:


70因为您的
if
总是计算为true,因为它是无序的。应该是:


70同意。从左到右阅读——目前,如果printedgrade大于或等于70,且70小于或等于79,则为
,非常感谢,不敢相信我犯了这么小的错误。同意。从左到右阅读——目前,如果printedgrade大于或等于70,且70小于或等于79,则为
,非常感谢,不敢相信我犯了这么小的错误。同意。从左到右阅读——目前,如果printedgrade大于或等于70,且70小于或等于79,则为
,非常感谢,不敢相信我犯了这么小的错误。同意。从左到右阅读——目前,如果printedgrade大于或等于70且70小于或等于79,则为
,非常感谢,不敢相信我犯了这么小的错误。谢谢回答!谢谢你的回答!谢谢你的回答!谢谢你的回答!请使用4或2级缩进,不要使用8级缩进。(如果您使用的是“vi”编辑器,
:设置shiftwidth=4
)请使用4或2级缩进,而不是8级缩进。(如果您使用的是“vi”编辑器,
:设置shiftwidth=4
)请使用4或2级缩进,而不是8级缩进。(如果您使用的是“vi”编辑器,
:设置shiftwidth=4
)请使用4或2级缩进,而不是8级缩进。(如果您使用的是“vi”编辑器,
:设置shiftwidth=4
if printedgrade >= 70 <= 79:
if printedgrade >= 70 and printedgrade <= 79:
if printedgrade >= 90:
    return "A"
elif printedgrade >= 80:
    return "B"
elif printedgrade >= 70:
    return "C"
...