Python:布尔值无法按预期工作

3

示例非常简单:

a = 2
b = 7

a >= 1 & a <= 10**10 & b >= 1 & b <= 10**2
>False
a >= 1 & a <= 10**2 & b >= 1 & b <= 10**2
>True

这个问题最初似乎只是一个简单的拼写错误,但引起了我的好奇心。最终我并不能真正理解它为什么会表现出这种行为?

1
& 并不是你想象中的那样。 - tzaman
使用 and 代替 & - ekhumoro
哎呀...我的尝试使用不同的编程语言失败了。即使是常见的运算符也不同。 - statespace
1
这篇帖子应该被删除。我应该从第一页开始阅读Python手册,以此来修复我的尊严。叹气 - statespace
1
@A.Val. 在几乎所有受C语言影响的编程语言中,“&”表示按位与。如果使用“&”符号来表示逻辑与,那么几乎总是写作“&&”。 - Ben
显示剩余3条评论
1个回答

1
你应该使用Python中的逻辑与运算符,它是and,而不是&
>>> a >= 1 and a <= 10**10 and b >= 1 and b <= 10**2
True

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接