繁体   English   中英

Python范围奇怪的行为

[英]python range weird behavior

我需要检查python中对象的变量,称为状态。 我在做什么是已知的:

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

其中p是我的对象。 我需要检查此状态是否介于-21和-29之间,但是只有在我将范围写为正数而不是负数时,它才起作用。 当我写:

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

它没有返回任何东西。 (当然,我打印了该对象的状态,并且确定此条件存在)。 一些想法???

谢谢

忘记range 链接比较运算符更具可读性。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM