当我给它一定的考试成绩和出勤率时,我试图让代码显示B级和C级。但是,它并没有这样做。 A级比赛虽然很完美。它为examscore提出了无效的语法错误,尽管我使用了相同的语法'在它上面的两条线上,它不起作用。我只是Python的新手,这是我的第一个项目之一。
examscore = int(input(("Enter exam score: ")))
attendance = int(input(("Enter attendance: ")))
if examscore >90 and attendance >90:
print("Grade A")
elif examscore >80 or <=90 and attendance >90:
print("Grade B")
elif examscore >70 or <=80 and attendance >90:
print("Grade C")
这是我得到的错误。
SyntaxError: invalid syntax
提前致谢。
答案 0 :(得分:0)
你需要:
elif examscore >80 or examscore <= 90 and attendance >90:
而不是:
elif examscore >80 or <= 90 and attendance >90:
答案 1 :(得分:0)
你不能写elif examscore >80 or <=90
,正确的语法是elif examscore >80 <=10
答案 2 :(得分:0)
您的语法错误是由于or
条件无效造成的。 <=
期望双方都有变量。
elif examscore >80 or <=90 and attendance >90: # Error here
print("Grade B")
elif examscore >70 or <=80 and attendance >90: # Here as well
print("Grade C")
您可以使用
解决此问题elif 80 < examscore <= 90 and attendence > 90:
答案 3 :(得分:0)
实际上,您根本不需要检查较高的范围,因为之前的检查总是涵盖您并且您正在使用elif
。
examscore = int(input(("Enter exam score: ")))
attendance = int(input(("Enter attendance: ")))
if examscore >90 and attendance >90:
print("Grade A")
elif examscore >80 and attendance >90:
print("Grade B")
elif examscore >70 and attendance >90:
print("Grade C")
答案 4 :(得分:0)
你有几个问题。
首先关闭:
examscore >80 or <=90 and attendance >90
是无效的语法。可以将其视为[examscore > 80] OR [ <= 90 ] AND [attendance > 90]
。我想你会发现[ <= 90 ]
不是可以评估的东西。相反,它应该说[examscore <= 90 ]
。
其次,不同语言在如何“绑定”AND和OR条件方面遵循不同的规则。如果没有括号,很难确定如何评估此逻辑。我猜测你希望的是:
examscore > 80 or (examscore <=90 and attendance > 90)
意味着任何得分超过80或低于90但出勤率超过90的人都会获得“B”(这对于获得B而言是一个有趣的指标 - 他们可以获得0分,并且只要他们在课堂上,他们得到“B”? - 但这与你的问题无关)。没有parens,很难确定。