python - 包含空白字符的 str 和 int(str)

python - str containing whitespace characters and int(str)

我正在尝试编写一个非常简单的函数。如果给定 object 是数字 (0-9),它应该 return True,否则为 False。以下是输入和所需输出的示例:

is_digit("") => False
is_digit("7") => True
is_digit(" ") => False
is_digit("a") => False
is_digit("a5") => False

我的代码适用于上述示例。

def is_digit(n):
    try: 
        return int(n) in range(0, 10)
    except:
        return False

问题是,函数 return 对 n = "1\n" 为真,而它应该 return 为假。因此,像“1”这样的字符串应该转换为整数并且是一个数字,但是像“1\n”这样的字符串不应该,但我不知道如何解决这个问题。我如何解释字符串文字?

P.S。如果我的标题很蹩脚,欢迎提出重命名的建议。

您不需要为此定义自定义函数。为此有一个内置函数,即 isdigit().

您可以将其用作:"a5".isdigit()"1/n".isdigit()。在这两种情况下,它都会 return False。

首先,您必须将字面量转换为字符串,然后才能应用 isdigit。 您不能将 isdigit 直接应用于数字。它会抛出一个错误

AttributeError: 'int' object has no attribute 'isdigit'

您必须在字符串中输入您的号码。 例如:

In [3]: str(0).isdigit()
Out[3]: True

In [1]: "0".isdigit()
Out[1]: True