2017-05-30 75 views
0

在Python中,我試圖檢查number的數值是正數還是負數。像isdigit()返回例外結果truenumber只包含正數,但運行負數返回結果false如何確定字符串是否有正數或負數的數值

number = "-235" 
print(str.isdigit()) # return false 

isdigit()在正值上工作正常,但在負值上失敗。
我如何檢查字符串包含正數或負數的數值?

+0

' -'不是一個數字字符... – mgilson

+0

@mgilson然後我如何檢查字符串包含數字是正數還是負數 –

+0

我想在'positive'或'negative'電話號碼不僅是正數。 –

回答

3

爲什麼不把它轉換爲數字並將其與0比較?

s = "-235" 
isPositive = float(s) > 0 
+0

有沒有什麼辦法可以在一步中確定正數或負數的返回結果是'真'。 –

+0

@ A.Raza這是非常簡潔的。你期望它變得多簡單嗎? – idjaw

+0

@ A.Raza如果你想要一個函數,你可以執行'isPositive = lambda n:float(n)> 0',這將返回正值爲'真',負值返回'假'。 –

1

因爲' - '不是數字。

try: 
    int("-235") 
    return True 
except ValueError: 
    return Falsestr = "-235" 

注意str是內置的,你不應str = "-235"

0

的另一種方式,如果你不想將它轉換爲integer你可以使用:

number = '-235' 
isPositive = number[0] != '-' 
相關問題