如何检查负数?

问题描述 投票:0回答:2

我正在尝试向该字符串添加一段代码以检查第一个位置是否有负数。如果代码识别出负数,则应返回“False”。我在用户输入命令中遇到 int 和 str 问题。

def is_number(S):
    #if s < 0:
        #print("False")
    #else:   
        try:
            float(s)
            return True
        except ValueError:
            pass
 
        try:
            import unicodedata
            unicodedata.numeric(s)
            return True
        except (TypeError, ValueError):
            pass
        return False
  
s = input()

is_number(s)
python
2个回答
8
投票

这是你想要的吗?

def check_negative(s):
    try:
        f = float(s)
        if (f < 0):
            return True
        # Otherwise return false
        return False
    except ValueError:
        return False

不完全确定这是否是你想要的,也许你应该看看ᴡʜᴀᴄᴋᴀᴍᴀᴅᴏᴏᴅʟᴇ3000的答案


7
投票
is_number=lambda S: str(S)[0]=='-' and len(str(S))>1

试试这个代码。您可以用此代码替换您的

is_number
函数。它是一个检查第一个字符是否为负号的函数,如果是,则返回 true。否则,该数字不能为负数,则返回 false。但是,如果只有
-
符号,则两者都不是,并且将返回 false。它只使用一根线,而且简单得多。它也适用于字符串和浮点数。

© www.soinside.com 2019 - 2024. All rights reserved.