为什么这总是打印第一个if语句,而不打印其他语句


grade = raw_input("What was your score?")
if grade >= 93:
print "For a score of " + grade + ", your grade is an A"
elif grade >= 90 and grade < 93:
print "For a score of " + grade + ", your grade is an A-"
elif grade >= 87 and grade < 90:
print "For a score of " + grade + ", your grade is a B+"
elif grade >= 83 and grade < 87:
print "For a score of " + grade + ", your grade is a B"
elif grade >= 80 and grade < 83:
print "For a score of " + grade + ", your grade is a B-"
elif grade >= 77 and grade < 80:
print "For a score of " + grade + ", your grade is a C+"
elif grade >= 73 and grade < 77:
print "For a score of " + grade + ", your grade is a C"
elif grade >= 70 and grade < 73:
print "For a score of " + grade + ", your grade is a C-"
elif grade >= 67 and grade < 70:
print "For a score of " + grade + ", your grade is a D+"
elif grade >= 63 and grade < 67:
print "For a score of " + grade + ", your grade is a D"
elif grade >= 60 and grade < 63:
print "For a score of " + grade + ", your grade is a D-"
else:
print "For a score of " + grade + ", your grade is an F"

无论输入什么作为原始输入,打印的声明总是"对于___的分数,你的分数是a",即使它应该是B或D或其他任何

raw_input返回字符串,而不是数字。在进行比较之前,您需要将其转换为int或float。

顺便说一句,如果你从python开始,选择3而不是2。2已经是EOL,对库的支持开始减少。

您正在比较一个整数和一个字符串。您需要使用int()将字符串强制转换为整数。例如,你可以做一些类似的事情

grade = int(raw_input("What was your score?"))

当然,这会给您留下一个问题,即您为显示输出消息而进行的(丑陋的(连接将停止工作(因为您无法连接字符串和整数(。99%的情况下,使用format比直接使用字符串串联要好,如下所示:

print "For a score of {}, your grade is an A".format(grade)

grade=int(输入("输入你的分数"(

使用python 3。

最新更新