2017-05-30 220 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] != '-' 
相关问题