python范围奇怪的行为
我需要检查 python 中对象的一个名为 status 的变量。我正在做的是已知的:
if p.status() in range(21,30):
其中 p 是我的对象。我需要检查此状态是否在 -21 和 -29 之间,但只有当我以正数而不是负数写入范围时它才有效。当我写道:
if p.status() in range(-30,-21):
它没有返回任何内容。 (当然我打印了这个对象的状态并且我确信这个条件存在)。一些想法???
谢谢
I need to check a variable, called status, of an object in python. What I am doing is the known:
if p.status() in range(21,30):
where p is my object. I need to check if this status is between -21 and -29, but it only works if I write the range in positive numbers instead of negative. When I wrote:
if p.status() in range(-30,-21):
it didn't return anything. (Of course I printed the status of this object and I am sure that this condition exist). Some ideas???
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
忘记
范围
。链式比较运算符更具可读性。顺便说一句,
range
的stop
参数永远不会包含在返回值中,因此对于包含 -21 到 -29 的情况,您需要range(- 29,-20)
。Forget
range
. Chained comparison operators are much more readable.By the way, the
stop
argument ofrange
is never included in the return value, so for -21 to -29 inlusive, you'd wantrange(-29,-20)
.您可以从 0 中减去该值,这将产生一个正值,该值在以下范围内:
You could subtract the value from 0 which would produce a positive value which would be in the range: