python 判断字符串是否为数字或字母

一、常用的字符串分为四种情况:
1、单个字符串,有文字、数字、符号等,如:‘1’、‘可’、‘-’ 等。
2、纯数字符串,如:‘111’、‘-111’、‘12.35’、‘0.456’ 等。
3、混合字符串:如:‘1AaD’、‘dfge2’、‘kl-):2’ 等。
4、纯字母字符串:如:‘ABc’、‘EFG’、‘abc’ 等。

二、判断字符串是否为纯数字(注意,带负号和小数点者不是纯数字):
1、使用内置函数 isdigit()。注意,不可以用于判断数值,否则会报错。

print('123'isdigit())   # 输出:True
print('2'isdigit())   # 输出:True
print('1.23'isdigit())   # 输出:False
print('-2'.isdigit())    #输出:False
print(1.isdigit())   #输出:SyntaxError: invalid decimal literal

2、使用内置函数 isnumeric()。

print('123'.isnumeric())   #输出:True
print('2'.isnumeric())   #输出:True
print('1.23'.isnumeric())   #输出:False
print('-2'.isnumeric())   #输出:False
print(2.isnumeric())   #输出:SyntaxError: invalid decimal literal

3、使用系统数字范围判断(注意,int()函数不支持小数点或负数作为字符串)

print(-888 < int(-2.3) < 999)   #输出:Ture
print(-888 < int(-2) < 999)   #输出:Ture
print(-888 < int('-2') < 999)   #输出:Ture
print(-888 < int('2') < 999)   #输出:Ture
print(-888 < -2 < 999)   #输出:Ture
print(-888 < -2.3 < 999)   #输出:Ture

注意:-888、999均可以随意指定(python的整数取值范围是无限的)。

三、判断字符串是否为纯字母(指26个字母,支持中文),isalpha():

print('a123'.isalpha())   #输出:False
print('abc'.isalpha())   #输出:True
print('Abc'.isalpha())   #输出:True
print('abc3'.isalpha())   #输出:False
print('(SBc'.isalpha())   #输出:False
print('中文'.isalpha())    #输出:True

四、判断字符串是否为数字与字母的混合(支持中文),isalnum():

print('123ABc'.isalnum())   #输出:True
print('abcABc'.isalnum())   #输出:True
print('123123'.isalnum())   #输出:True
print('A1B2c3'.isalnum())   #输出:True
print('12.3'.isalnum())   #输出:False
print('-123'.isalnum())   #输出:False
print('中'.isalnum())   #输出:True
print('中文89分'.isalnum())   #输出:True

可根据不同的需求,选择不同的判断方式。
也可以配合字符串函数把字符串切片后进行判断。
如需判断大小写字母,则可以使用islower()、isupper()等函数。

猜你喜欢

转载自blog.csdn.net/any1where/article/details/128112545