[英]python - str containing whitespace characters and int(str)
我正在嘗試編寫一個非常簡單的函數。 如果給定對象是數字(0-9),則應返回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
麻煩的是,該函數在應返回False時為n = "1\\n"
返回True。 因此,像“ 1”這樣的字符串應該轉換為整數,並且是一個數字,但是像“ 1 \\ n”這樣的字符串則不能,但是我不知道該如何解決。 如何解釋字符串文字?
PS:如果我的頭銜很la腳,歡迎提供有關重命名的建議。
您無需為此定義自定義函數。 為此有一個內置函數,即isdigit()
。
您可以將其用作: "a5".isdigit()
或"1/n".isdigit()
。在兩種情況下,它將返回False。
首先,您必須將文字轉換為字符串,然后才能應用isdigit。 您不能將isdigit直接應用於數字。 會拋出錯誤
AttributeError:'int'對象沒有屬性'isdigit'
您必須以字符串輸入數字。 例如:
In [3]: str(0).isdigit()
Out[3]: True
要么
In [1]: "0".isdigit()
Out[1]: True
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.