为什么这个基本的 if-else 表达式会失败?
Why is this basic if-else expression failing?
这是我第一次 post 访问该网站。我已经进入编码 class 的第三周,除了这个问题,我已经完成了所有的事情。我们正在使用 ZyBooks。除了这个参与练习,我已经完成了所有的事情。它没有分级;然而,这让我抓狂。 我们被要求编写一个表达式,如果 user_grade 的值介于 9 和 12(含)之间,则将打印“in high school”。
带有输入的示例输出:10 在高中
这是我目前所拥有的: 如果我 post 对此有误,我深表歉意。
user_grade = int(input())
if user_grade >= 9 <= 12:
print('in high school')
else:
print('not in high school')
代码通过了所有测试,直到运行输入:13。然后我收到此错误:
输出不同。请参阅下面的要点。
特殊字符图例 你的输出: 在高中
预期输出: 不在高中
我认为您在 if 中的操作顺序略有错误。你的意思是:
if 9 <= user_grade <= 12:
因为现在您正在检查:
- 小于或等于 user_grade9 和
- 小于或等于 12 的 9
如果您输入 13
,那么第一个检查将是 True
。但由于第二次检查仅比较 9 和 12,因此它始终为真。因此,您永远不会测试 user_input
是否小于或等于 12.
你的条件不对。你应该使用:
if 9 <= user_grade <= 12:
print('in high school')
比较的顺序很重要。 user_grade >= 9 <= 12
表示 user grade is inferior or equals to 9 AND 9 is inferior or equals to 12
.
猜测它应该更具可读性如下:
def user_grade (input):
if input >= 9 and input <= 12:
print('in high school')
else:
print('not in high school')
user_grade(13)
zybooks 问题的答案是:
8 < user_grade < 13