方法一: isdigit() 不可識別漢字 小數類型
str1 = '1'
str2 = '2.1'
str3 = '三'
str4 = '3.3.3.3'
print(str1.isdigit())
print(str2.isdigit())
print(str3.isdigit())
print(str4.isdigit())
結果:
True
False
False
False
方法二: isdecimal() 沒有與方法一發現區別
str1 = '1'
str2 = '2.1'
str3 = '三'
str4 = '3.3.3.3'
print(str1.isdecimal())
print(str2.isdecimal())
print(str3.isdecimal())
print(str4.isdecimal())
結果:
True
False
False
False
方法三: isnumeric() 可以識別漢字
str1 = '1'
str2 = '2.1'
str3 = '三'
str4 = '3.3.3.3'
print(str1.isnumeric())
print(str2.isnumeric())
print(str3.isnumeric())
print(str4.isnumeric())
結果:
True
False
True
False
唯獨沒有找到可以識別小數的.
識別小數使用try 來判斷
try:
float(str2)
print('is True')
except:
print(' is False ')
try:
float(str1)
print('is True')
except:
print(' is False ')
運行結果:
is True
is True
由此可見. float對整數和小數都有效. 那么為了判斷字符串到底能不能轉換為數字.我們加一個方法稍稍改動一下就可以了:
def is_number(target_str):
try:
float(target_str)
return True
except:
pass
if target_str.isnumeric():
return True
return False
print(is_number(str1))
print(is_number(str2))
print(is_number(str3))
print(is_number(str4))
這樣就OK拉. 快去試試吧