这是我在该网站上的第一篇文章。我已经进入编码课的第三周了,除了这个问题之外,我已经完成了所有的事情。我们正在使用 ZyBooks。我已经完成了除了这次参与练习之外的所有事情。它没有评分;然而,这让我发疯。 我们被要求编写一个表达式,如果 user_grade 的值在 9 到 12(含)之间,则打印“in high school”。
输入样本输出:10 在高中
这是我到目前为止所拥有的: 如果我发布的内容有误,我深表歉意。
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:
因为现在你正在检查:
如果您输入
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 中有效: 用户等级 = int(输入())
如果9<= user_grade and user_grade <= 12: print('in high school') else: print('not in high school')
书中的注释给出了答案的提示。
zybooks问题的答案是:
8 < user_grade < 13