字符串的判断
x.startswith('字符串')
判断指定的字符串是否出现在原字符串起始位置,是为True,不是为False
x.endswith('字符串')
#判断指定的字符串是否出现在原字符串末尾位置,是为True,不是为False
支持元组传入元素
x = 'python 很好用'
print(x.startswith('py')) # True
print(x.startswith('p')) # True
print(x.startswith('p', 1, 5)) # False,原字符串从下标1开始到下标5结束,不包括下标为5的字符
print(x.endswith('好用')) # True
print(x.endswith('好用', 0, 5)) # False,原字符串从下标0开始到下标5结束,不包括下标为5的字符
if x.startswith(('py', 'ja', 'css')):
print('编程很好用!') # 编程很好用!
x.istitle()
判断所有单词都是大写开头,其余都是小写,是为True,不是为False
x = 'I Love Python'
print(x.istitle()) # True
y = 'I Love python'
print(y.istitle()) # False
x.isupper()
判断所有字母都是大写字母,是为True,不是为False
x.upper()
是将字母全部转换成大写
x.islower()
判断所有字母都是小写字母,是为True,不是为False
x = 'I Love Python'
print(x.isupper()) # False
print(x.upper().isupper()) # True,调用多个函数时,从左往右依次执行
y = 'HHH HI'
print(y.isupper()) # True
z = 'i love'
print(z.islower()) # True
print(x.islower()) # False
x.isalpha()
判断字符串中是否只是由字母构成
x = 'I Love Python'
print(x.isalpha()) # False,因为空格不是字母
y = 'ILovePython'
print(y.isalpha()) # True
x.isspace()
判断是否为一个空白字符串,空格和tab都是空白字符串,空字符串不是空白字符串
x = 'I Love Python'
print(x.isspace()) # False
y = ' '
print(y.isspace()) # True
z = '' # 空字符串
print(z.isspace()) # False
w = ' ' #tab
print(w.isspace()) # True
x.isprintable()
判断一个字符串中是否所有字符都是可打印的,转义字符不可打印
x = 'I Love Python'
print(x.isprintable()) # True
y = 'I Love Python\n'
print(y.isprintable()) # False
x.isdecimal()
判断字符串是否只包含十进制字符
x.isdigit()
判断字符串是否只由数字组成
x.isnumeric()
判断字符串是否只由数字组成
x.isalnum()
x.isalpha()、x.isdecimal()、x.isdigit()、x.isnumeric()中任何一个为True,x.isalnum()就为True
x = '12345'
print(x.isdecimal()) # True
print(x.isdigit()) # True
print(x.isnumeric()) # True
y = '2^2'
print(y.isdecimal()) # False
print(y.isdigit()) # False
print(y.isnumeric()) # False
z = '一'
print(z.isdecimal()) # False
print(z.isdigit()) # False
print(z.isnumeric()) # True
print(z.isalnum()) # True
x.isidentifier()
判断字符串是否是一个合法的python标志符,合法标志符是包括下划线、字母、数字,并且以下划线或者字母开头
x = 'I Love Python'
print(x.isidentifier()) # False,不能有空格
y = 'I_Love_Python'
print(y.isidentifier()) # True
keyword.iskeyword('字符')
判断一个字符是否为Python的保留标志符
import keyword
print(keyword.iskeyword('if')) # True
print(keyword.iskeyword('py')) # False
字符串的截取
x.lstrip()
左侧的空白被截掉
x.rstrip()
右侧的空白被截掉
x.strip()
左、右的空白都被截掉
x.lstrip('字符串')
截掉左侧的字符
x.rstrip('字符串')
截掉右侧的字符
x.strip('字符串')
左、右的字符都被截掉
是依次寻找单个字符依次截掉,并不是字符串截掉
x = ' 左侧不要留白 '
print(x.lstrip())
print(x.rstrip())
print(x.strip())
y = 'www.ilovepython.com'
print(y.lstrip('wcom.')) # ilovepython.com,截掉了左侧的3个w和1个.
print(y.rstrip('wcom.')) # www.ilovepython,截掉右侧的com和右侧的.
print(y.strip('wcom.')) # ilovepython,截掉左、右两侧的wcom.
x.removeprefix('字符串')
截掉前缀字符串
x.removesuffix('字符串')
截掉后缀字符串
x = 'www.ilovepython.com'
print(x.removeprefix('www.')) # ilovepython.com,截掉前缀www.字符串
print(x.removesuffix('.com')) # www.ilovepython,截掉后缀.com字符串
字符串的拆分与拼接
拆分
x.partition('元素')
从左向右找第一个元素来切割
x.rpartition('元素')
从右往左找第一个元素来切割
切割字符串,得到三个元素的元组
x = 'www.ilovepython.com'
print(x.partition('.')) # ('www', '.', 'ilovepython.com'),从左向右找第一个'.'来切割
print(x.rpartition('.')) # ('www.ilovepython', '.', 'com'),从右往左找第一个'.'来切割
x.split()
默认用空格分隔
y.split('字符')
从左往右依次找字符分隔
y.rsplit('字符')
从右往左依次找字符分隔
y.split('字符',n)
从左往右依次找字符分隔n次,也就是n+1份
y.rsplit('字符',n)
从右往左依次找字符分隔n次,也就是n+1份
得到的是列表
x = '明日复明日 明日何其多 我生待明日 万事成蹉跎'
print(x.split()) # ['明日复明日', '明日何其多', '我生待明日', '万事成蹉跎'],用空格分隔
y = '1,2,3,4'
print(y.split(',')) # ['1', '2', '3', '4'],用','分隔
print(y.rsplit(',')) # 从右往左依次找','分隔
print(y.split(',', 2)) # ['1', '2', '3,4'],从左往右依次找','分隔2次,也就是3份
print(y.rsplit(',', 2)) # ['1,2', '3', '4'],从右往左依次找','分隔2次,也就是3份
x.splitlines()
用换行符切割,换行符可以是\n
也可以是\r
x.splitlines(True)
得到的列表包括换行符
x = '1\n2\r3\n4'
print(x.splitlines()) # ['1', '2', '3', '4'],用换行符切割
print(x.splitlines(True)) #['1\n', '2\r', '3\n', '4'],得到的列表包括换行符
拼接
'元素'.join(['好', '明天', 'say'])
用元素将join里的元素连接起来
join 里面用元组和列表都可以
print('.'.join(['好', '明天', 'say'])) # 好.明天.say,用.将join里的元素连接起来
print('.'.join(('好', '明天', 'say'))) # 好.明天.say,用.将join里的元素连接起来