python - 循环中的 if 语句,结果总是返回 True
问题描述
编辑:感谢所有回答问题的人,我现在知道我做错了什么,你的解释都非常有帮助!(我想投票,但显然我没有足够的声誉)。也很抱歉,我知道其他人可能会问我问题,我只是找不到,猜是不知道要搜索什么。
第一篇文章,如果这是一个非常初学者的错误,我很抱歉,但我整个晚上都在摸索,并且无法为我的生活找出问题所在。
我试图在一个双 for 循环中运行下面的 if 语句,该循环遍历一个列表并且不能让它返回 false。我已经尝试查找它并认为它可能是数据类型比较问题,但我已经仔细检查过(因此为什么所有内容都被声明为 int)并且这似乎不是问题。一切都是整数,所以我有点失落!
您可以提供的任何帮助将不胜感激!谢谢!
for search_site in range(len(search_list)):
for product in range(len(product_list)):
if search_site != int(1) or int(10) or int(13):
print(search_site)
print("True")
else:
print("False")
我已经使用打印来查看正在比较的内容,我通常会得到这样的结果(为简单起见,删除了重复项):
0 真 1 真 2 真 3 真 4 真 5 真 6 真 7 真 8 真 9 真 10 真 11 真 12 真 13 真
解决方案
if search_site != int(1) or int(10) or int(13):
这并不意味着你认为它意味着什么。它的意思是
if (search_site != 1) or 10 or 13:
也就是说,如果search_site
不等于 1,或者如果 10 不等于 0,或者如果 13 不等于 0,则 if 语句为真。考虑
if search_site != 1 or search_site != 10 or search_site != 13:
或者,更简洁地说,
if search_site not in [1, 10, 13]:
推荐阅读
- python - 分类数据的线性回归
- reactjs - 无法让 Heroku App 运行,但我可以让它在本地运行
- azure - 如何在 Azure ADF 中进行行转换?
- rust - 为什么从
for U在 Rust 中意味着 Into for T? - android - 约束布局包装文本视图,但约束宽度太长而无法让其他视图可见
- ios - 如何使 UITextView 根据文本长度进行调整?
- python - 如何解决 Python 终端不解释 ANSI 转义序列的问题?
- css - 如何将形状从指向上更改为指向右
- excel - 连接字符串以在 VBA 中构建公式
- python - Python Tkinter askdirectory 在资源管理器中显示不正确的驱动器