[英]number in a given range if loop python
我試圖在python中計算這個簡單的表達式:
如果數字大於-1.0且小於1.0則執行某些操作。
我試過這個:
if x > '-1.0' and x < '1.0':
DoSomething
但事實證明它只評估第二部分(x <'1.0')。 我也試過了
if '-1.0' < x < '1.0':
DoSomething
但奇怪的是我沒有得到我想要的東西。 有什么建議請????
您正在與字符串進行比較,而不是數字。
if x > -1.0 and x < 1.0:
pass
將對數字進行比較。
您不希望將數字放在引號中 - 這會導致字符串比較,而不是數字比較。 你要
if x > -1.0 and x < 1.0:
DoSomething
正如其他答案所提到的,您需要刪除引號,以便與數字而不是字符串進行比較。
但是,這些答案都沒有使用Python的鏈式比較 :
if -1.0 < x < 1.0:
DoSomething
這相當於if x > -1.0 and x < 1.0
,但效率更高,因為x
僅計算一次。
這也有效:
if abs(x) < 1.0
您在該代碼中所做的是將x與字符串值'-1.0'或'1.0'進行比較,而不是double值。 請嘗試以下方法:
if x > -1.0 and x < 1.0:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.