如果循环python,在给定范围内的数字

时间:2011-11-22 00:23:41

标签: python if-statement

我正在尝试在python中计算这个简单的表达式:

如果数字大于-1.0且小于1.0,则执行某些操作。

我试过了:

if x > '-1.0' and x < '1.0':
    DoSomething

但事实证明它仅评估第二部分(x <'1.0')。 我也试过

if '-1.0' < x < '1.0':
    DoSomething 
但奇怪的是,我没有得到我想要的东西。任何建议请????

5 个答案:

答案 0 :(得分:7)

您正在与字符串进行比较,而不是数字。

if x > -1.0 and x < 1.0:
    pass

将对数字进行比较。

答案 1 :(得分:2)

您不希望将数字放在引号中 - 这会导致字符串比较,而不是数字比较。你想要

if x > -1.0 and x < 1.0:
    DoSomething

答案 2 :(得分:2)

正如其他答案所提到的,您需要删除引号,以便与数字而不是字符串进行比较。

然而,这些答案都没有使用Python的chained comparisons

if -1.0 < x < 1.0:
    DoSomething 

这相当于if x > -1.0 and x < 1.0,但效率更高,因为x仅评估一次。

答案 3 :(得分:1)

您在该代码中所做的是将x与字符串值'-1.0'或'1.0'进行比较,而不是double值。请尝试以下方法:

if x > -1.0 and x < 1.0:

答案 4 :(得分:1)

这也有效:

if abs(x) < 1.0