python范围奇怪的行为

发布于 2024-12-07 19:33:52 字数 306 浏览 0 评论 0原文

我需要检查 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

忘记范围。链式比较运算符更具可读性。

if -29 <= p.status() <= -21:

顺便说一句,rangestop 参数永远不会包含在返回值中,因此对于包含 -21 到 -29 的情况,您需要 range(- 29,-20)

Forget range. Chained comparison operators are much more readable.

if -29 <= p.status() <= -21:

By the way, the stop argument of range is never included in the return value, so for -21 to -29 inlusive, you'd want range(-29,-20).

爱你是孤单的心事 2024-12-14 19:33:52

您可以从 0 中减去该值,这将产生一个正值,该值在以下范围内:

if 0 - p.status() in range(21,30):

You could subtract the value from 0 which would produce a positive value which would be in the range:

if 0 - p.status() in range(21,30):
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文