类似于?find(),但在找不到子字符串时会引发?ValueError。
例子:
str1 = 'my name is jack!'
print(str1.index('i'))
print(str1.index('b'))
结果:
Traceback (most recent call last):
? File "D:/pythonProject/test/test20240110.py", line 3, in <module>
??? print(str1.index('b'))
ValueError: substring not found
8
判断字符串是否都是由字母或数字组成。
即字符串不为空,且只有字母或者字符串。
如果?c.isalpha()?,?c.isdecimal()?,?c.isdigit()?,或?c.isnumeric()?之中有一个返回?True?,则字符?c?是字母或数字。
例子:
str1 = 'my name is jack!'
str2 = 'abcd1123'
print(str1.isalnum())
print(str2.isalnum())
结果:
False
True
判断字符串是否只包含字母。
如果字符串中的所有字符都为字母并且至少有一个字符则返回?True,否则返回?False。
例子:
str1 = 'my name is jack!'
str2 = 'abcd1123'
str3 = 'lkinaufk'
print(str1.isalpha())
print(str2.isalpha())
print(str3.isalpha())
结果:
False
False
True
如果字符串为空或字符串中的所有字符都是 ASCII ,返回?True?,否则返回?False?。ASCII 字符的码点范围是 U+0000-U+007F 。
例子:
str1 = 'my name is jack!'
str2 = 'abcd1123'
str3 = 'abc_(:з」∠)_'
print(str1.isascii())
print(str2.isascii())
print(str3.isascii())
结果:
True
True
False
判断是否十进制数字。
如果字符串中的所有字符都是十进制字符且该字符串至少有一个字符,则返回?True?, 否则返回?False?。
例子:
str1 = '测试字符111'
str2 = 'asdfas'
str3 ='1234556'
str4 = 'ⅢⅣ'
str5 = '一'
str6 = '2.23'
str7 = '123'
print(str1.isdecimal())
print(str2.isdecimal())
print(str3.isdecimal())
print(str4.isdecimal())
print(str5.isdecimal())
print(str6.isdecimal())
print(str7.isdecimal())
结果:
False
False
True
False
False
False
True
判断是否是数字。
如果字符串中的所有字符都是数字,并且至少有一个字符,返回?True?,否则返回?False?。?
例子:
str1 = '测试字符111'
str2 = 'asdfas'
str3 ='1234556'
str4 = 'ⅢⅣ'
str5 = '一'
str6 = '2.23'
str7 = '123'
print(str1.isdigit())
print(str2.isdigit())
print(str3.isdigit())
print(str4.isdigit())
print(str5.isdigit())
print(str6.isdigit())
print(str7.isdigit())
结果:
False
False
True
False
False
False
True
如果字符串中至少有一个字符且所有字符均为数值字符则返回?True?,否则返回?False?。
例子:
str1 = '测试字符111'
str2 = 'asdfas'
str3 ='1234556'
str4 = 'ⅢⅣ'
str5 = '一'
str6 = '2.23'
str7 = '123'
print(str1.isnumeric())
print(str2.isnumeric())
print(str3.isnumeric())
print(str4.isnumeric())
print(str5.isnumeric())
print(str6.isnumeric())
print(str7.isnumeric())
结果:
False
False
True
True
True
False
True
isdecimal、isdigit、isnumeric的主要区别:
全角、半角数字三者都可以判断。但是isnumeric范围更广泛一些,还包括中文数字、罗马数字。
三者都不包括小数,因为小数有小数点,在字符串里面点号不按照数字对待。
判断字符串是否有效的标识符。
例子:
str1 = '测试字符111'
str2 = 'asdfas'
str3 ='1234556'
str4 = 'ⅢⅣ'
str5 = '一'
str6 = '.223'
str7 = 'a123'
print(str1.isidentifier())
print(str2.isidentifier())
print(str3.isidentifier())
print(str4.isidentifier())
print(str5.isidentifier())
print(str6.isidentifier())
print(str7.isidentifier())
结果:
True
True
False
True
True
False
True