如果数字介于两个值之间则返回 \[Python\]

新手上路,请多包涵

很简单的问题,但我不知道如何实现它。

本质上:

 >>> r = range(4,-1)
>>> 3 in r
False
>>> q = range(-1,4)
>>> 3 in q
True

如您所见,我有相同的界限,-1 和 4,以及相同的测试值,所以当我不知道它们的顺序时,我怎么说“3”在“-1”和“4”之间是给我的吗?

原文由 Tanishq dubey 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

为什么不先对边界进行排序?

 r = range(*sorted((4, -1)))
q = range(*sorted((-1, 4)))

原文由 John La Rooy 发布,翻译遵循 CC BY-SA 3.0 许可协议

range 并不像你想象的那样。

它创建一个列表;它不是一个数字范围(编辑:实际上它在 Python 3 中是这样)。

试想一下,当 lowerEnd 为 -20000 且 upperEnd 为 +20000 时。在这样的 中使用 range( -20000, 20000 ) 并比较 num range() 是对内存和 CPU 功率的浪费。

numlowerEnd & upperEnd 极限进行比较就足够了

你想检查:

 num = 3
print(-1 < num < 4)

原文由 101 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题