调用变量

时间:2018-04-30 18:25:43

标签: python variables syntax

当我给它一定的考试成绩和出勤率时,我试图让代码显示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

提前致谢。

5 个答案:

答案 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,很难确定。