簡體   English   中英

如果循環python,在給定范圍內的數字

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM