如何解决为什么这个基本的 if-else 表达式会失败?
这是我在网站上的第一篇文章。我正在上第三周的编码课,除了这个问题,我已经完成了所有的工作。我们正在使用 ZyBooks。除了这个参与练习,我已经完成了所有的事情。它没有分级;然而,它让我发疯。 如果 user_grade 的值在 9 到 12 之间(包括 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:
因为现在您正在检查:
- 小于或等于 user_grade 9 和
- 是 9 小于或等于 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
。
猜测它应该更具可读性,如下所示:
all_tr = html.xpath("//tr")
for tr in all_tr:
# relative xpath in `tr` (using `.` at start)
header = tr.xpath('.//td[@headers="Times"')
if "7:30" in header[0].text:
# relative xpath in `tr` (using `.` at start)
avaliable = tr.xpath('.//td[@headers="Avaliable"]')
avaliable[0].click()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。