我想在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
但奇怪的是我沒有得到我想要的東西。任何建議請?
我想在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 -1.0
它不工作....實際上至少字符串正在做一些事情,只有數字我沒有得到任何錯誤,但它也沒有做任何事情。 – eikonal
@eikonal:什麼類型是'x'?它是一個字符串還是一個數字?您可能需要首先將'x'轉換爲浮點數('float(x)'),然後才能對其進行數字比較。 –
您不希望將數字放在引號中 - 這會導致字符串比較,而不是數字比較。你想
if x > -1.0 and x < 1.0:
DoSomething
你在做的是在比較x與字符串值'-1.0'或'1.0',而不是雙倍值。請嘗試以下操作:
if x > -1.0 and x < 1.0:
正如其他答案所述,您需要刪除引號,以便與數字而不是字符串進行比較。
然而,使用沒有這些問題的答案Python的chained comparisons:
if -1.0 < x < 1.0:
DoSomething
這相當於if x > -1.0 and x < 1.0
,但更有效,因爲x
只計算一次。
我嘗試過,但它看起來根本沒有評估。我的意思是我沒有得到任何錯誤,但任何結果或者... x是簡單的格式0.1或-0.3等等,在+/- 3之間的範圍 – eikonal
嘗試'if -1.0
這也將工作:
if abs(x) < 1.0
你得到什麼輸出?你有沒有嘗試刪除引號? – Stedy
什麼也沒有。它應該寫一行,如果這是滿意的,無論如何我試圖刪除引號,但它並沒有幫助 – eikonal
'x'的值是什麼?這是否也是一個字符串?如果是這樣,你可以用'float(x)'將它轉換爲浮點值。所以你的if語句是:'if -1.0
srgerg