我並沒有真正寫如何寫標題,但我有一個if語句和兩個變量a
和b
。我希望它檢查變量a
是否等於b
或,如果它變化0.1(表示它可以高於或低於0.1)。我試過的方法是什麼如下所示:if語句的變量略有不同
a = 1
b = 0.9
if (a == b) or (a == b + 0.1) or (a == b - 0.1):
print "it worked"
的問題是,這種方法似乎過於漫長,我想知道,如果他們是一個簡短的表達方式,我可以用它來做到這一點。
我並沒有真正寫如何寫標題,但我有一個if語句和兩個變量a
和b
。我希望它檢查變量a
是否等於b
或,如果它變化0.1(表示它可以高於或低於0.1)。我試過的方法是什麼如下所示:if語句的變量略有不同
a = 1
b = 0.9
if (a == b) or (a == b + 0.1) or (a == b - 0.1):
print "it worked"
的問題是,這種方法似乎過於漫長,我想知道,如果他們是一個簡短的表達方式,我可以用它來做到這一點。
如果你想讓它變化,你應該不檢查平等,但小於或等於。像:
if b-0.1 <= a <= b+0.1:
# ...
pass
或者:
if -0.1 <= a-b <= 0.1:
# ...
pass
後者會有點更有效,因爲在差僅計算一次。
第一條語句(a == b
)然後是不必要的,因爲它隱含在上面。
而且注意,通常不是一個好主意浮動點反正檢查平等:0.1
不能精確表示這樣0.1
東西0.0999....
或0.1000...1
-ish。因此,某些配方產品的最輕微差異可能會有微小的差異,這將導致檢查結果爲False
。
您可以abs()
功能
if abs(a-b) <= 0.1:
pass
試試你的意思的區別是** **正是0.1? –