我正在尝试在python中计算这个简单的表达式:
如果数字大于-1.0且小于1.0,则执行某些操作。
我试过了:
if x > '-1.0' and x < '1.0':
DoSomething
但事实证明它仅评估第二部分(x <'1.0')。 我也试过
if '-1.0' < x < '1.0':
DoSomething
但奇怪的是,我没有得到我想要的东西。任何建议请????
答案 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