Python 3个值的比较?在IF中,ELIF

Python 3个值的比较?在IF中,ELIF,python,python-3.x,if-statement,Python,Python 3.x,If Statement,我有一个关于IF,ELIF(和这个网站的新手)的学校作业。实际上它很简单,但我有点困惑,因为这是我第一次处理IF,我找到了3种输入代码的方法, 它是关于显示分数索引的程序 100-81=A 80-61=B 60-0=C score=int(输入('Insert score:')) 如果100>=分数>=81: 打印('A') elif 80>=得分>=61: 打印('B') elif评分>100分: 打印('不存在') 其他: 打印('C') 打印() ---------- 分数=整数(输入

我有一个关于IF,ELIF(和这个网站的新手)的学校作业。实际上它很简单,但我有点困惑,因为这是我第一次处理IF,我找到了3种输入代码的方法, 它是关于显示分数索引的程序

  • 100-81=A
  • 80-61=B
  • 60-0=C
score=int(输入('Insert score:'))
如果100>=分数>=81:
打印('A')
elif 80>=得分>=61:
打印('B')
elif评分>100分:
打印('不存在')
其他:
打印('C')
打印()
----------
分数=整数(输入('插入分数:'))
如果得分>100:
打印('不存在')
elif得分>=81:
打印('A')
elif得分>=61:
打印('B')
其他:
打印('C')
我的老师告诉我第一个是错的,为什么是错的?(嗯,我问他,但他没有回答,因为我很确定第一个是正确的) 第二个更有效,但我不知道为什么第一个错了。
我应该使用哪种代码更好?

第一种代码很好。与许多语言不同,Python确实支持这样的链式比较。这在C语言中是错误的,但在Python中是可以的,而且它读起来很好。最后一个是错误的,因为所有的分数都是A

就我个人而言,我会用相反的顺序来写:

    if 81 <= score <= 100:

如果第三个代码没有执行前两个代码正在执行的操作。如果分数=75,它将打印
A
wile,另外两个将打印
B
。第一行中缺少一个结束语
。除此之外,第一种方法是在python中最具可读性的方法,您可以发布整个问题吗。如果分数是100分、60分或59分,我们不知道结果如何。所以我们无法确定您的代码的正确性。@ramwin,我认为不需要代码的其余部分。使用这段代码,我们可以计算出100或60或100美元应该打印什么59@clmno-“第一个有拼写错误”他们都有拼写错误。正如Joe指出的,第三个算法甚至不是同一个算法,并且总是会产生
'A'
(假设最高分数是100)。是的,我的想法是一样的,我的意思是你可以在Python中使用它,没有错,甚至代码仍然在工作。我甚至不明白为什么我的老师告诉我第一个错误。非常感谢!