【问题标题】:Python: Check for Negative NumbersPython:检查负数
【发布时间】:2018-02-08 03:29:17
【问题描述】:

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

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


【解决方案1】:

这是你想要的吗?

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

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

【讨论】:

  • "在第一个位置检查负数"。如果它是一个包含浮点数的字符串怎么办?
  • 我能够完成这项工作!我使用了这段代码的“尝试”部分,它起作用了。谢谢!
【解决方案2】:
is_number=lambda S: str(S)[0]=='-' and len(str(S))>1

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

【讨论】:

  • 非常感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2011-01-08
  • 2017-07-27
  • 2012-03-07
  • 2015-05-22
  • 1970-01-01
  • 2011-09-02
  • 1970-01-01
相关资源
最近更新 更多