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
我正在尝试编写一个非常简单的函数。如果给定 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