字符串是什么?
呃,相信学习过编程的同学应该都知道,这里就不在赘述了,我们今天要学习的是字符串的相关操作。
Python中字符串的相关操作还真不少,具体来说有多少呢,说实话,我还真没有数过,今天就让我们一起进入字符串的世界。
- 判断操作
判断操作,顾名思义,就是判断这个字符串是否满足相关条件,一般来说,此类操作返回值为布尔类型
isdigit() 判断一个字符串是否是纯阿拉伯数字,若是则返回True,若不是则返回False;
str='hello little smile!'
print(str.isdigit())
执行结果为False
isalpha()判断一个字符串是否为纯字母,若是则返回True,若不是则返回False;
str='hello little smile!'
print(str.isalpha())
由于上述字符串str中含有空格和”!”,执行结果为False
isalnum() 判断一个字符串是否是英文字母和数字,不包括特殊字符,若是则返回True,若不是则返回False;
str='112abc'
print(str.isalnum())
执行结果为True.
isdecimal()方法检查字符串是否仅由十进制字符组成。此方法只存在于unicode对象。
str='12345'
print(str.isdecimal())
执行结果为True.
isidentifier() 方法用于判断字符串是否是有效的 Python 标识符,可用来判断变量名是否合法,如果字符串是有效的 Python 标识符返回 True,否则返回 False。
print('str'.isidentifier())
执行结果为True.
islower()判断字符串str中的字母是否为小写,若有大写则返回False;
str='hello,world!'
print(str.islower())
执行结果为True.
isupper()判断字符串str中的字母是否为大写,若有小写则返回False
print("HELLO".isupper())
执行结果为True
Isnumeric() 函数判断一对象是否为数字,返回布尔值,效果和isdigit()一样。
str='123456'
print(str.isnumeric())
执行结果为True.
isprintable()判断是否可打印,一般用于判断文件名,类似于tty文件或drive文件,字符串中使用较少。
print(str.isprintable())
isspace()用于判断输入是否为空格。
print(' '.isspace())
执行结果为True.
istitle() 检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写,若符合此规则,返回True,否则返回False.
print("Hello,World!".istitle())
执行结果为True.
endswith()判断str是否已某特定字符或特定字符串结束。
str='123456'
print(str.endswith('6'))
执行结果为True.
startswith()判断str是否已某特定字符或特定字符串开始。
str='123456'
print(str.startswith('1'))
执行结果为True.
2.格式化输出
center()表示把已知字符串居中输出。
str='123456'
print(str.center(20,'-')) #把str居中输出,共输出20位,不够的在左右两端用‘-’补齐
执行结果为
-------123456-------
ljust()将字符串左对齐输出,按指定位数输出,若字符数不够在右边补指定字符。
str='MY name is '
print(str.ljust(20,'-'))
执行结果
MY name is ---------
rjust()将字符串右对齐输出,按指定位数输出,若字符数不够在左边补指定字符。
str='MY name is '
print(str.rjust(20,'-'))
执行结果
---------MY name is
zfill()按指定位数输出字符串,若位数不够在前边补0,常用于2进制或8进制数补位。
str='101 '
print(str.zfill(8))
执行结果:
0000101
strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。 注意:该方法只能删除开头或是结尾的字符。
str=' 101 '
print(str.strip())
执行结果101
rstrip()方法用于移除字符串右边指定的字符(默认为空格或换行符)或字符序列。
str=' 101 '
print(str.rstrip())
执行结果
101
lstrip()方法用于移除字符串左边指定的字符(默认为空格或换行符)或字符序列。
str=' 101 '
print(str.lstrip())
执行结果
101
capitalize()将字符串第一个字母大写
str='my name is'
print(str.capitalize())
执行结果为
My name is
expandtabs()方法把字符串中的 tab 符号(’\t’)转为空格,并按指定数字输出。
str='my\t name is'
print(str.expandtabs(tabsize=7))
执行结果为:
my name is
format()为已知字符串传入参数并输出。
str='my name is {name} and i am {age} years old '
print(str.format(name='Sasha',age='19'))
执行结果为
my name is Sasha and i am 19 years old
format_map()效果同format,只是传入参数已字典形式显示。
str='my name is {name} and i am {age} years old '
print(str.format_map({'name':'Sasha','age':19}))
执行结果为
my name is Sasha and i am 19 years old
lower()将字符串中的大写字母全部转化成小写。
str='MY name is '
print(str.lower())
执行结果
my name is
upper()将字符串中的小写字母全部转化成大写
str='MY name is '
print(str.upper())
执行结果
MY NAME IS
3.其它操作
index()获取指定字符串中某一特定字符的索引(类似于列表的下标),找不到指定字符会报错
str='my name is'
print(str.index('y'))
执行结果为1
rindex()获取指定字符串中某一特定字符的最右边的索引(类似于列表的下标)
str='my name is'
print(str.rindex('m'))
执行结果为5
count()获取指定字符串中某一特定字符或字符串的数量。
str='my name is'
print(str.count('m'))
执行结果为2
find()获取指定字符串中某一特定字符的索引(类似于列表的下标),若找不到指定字符不会报错,而会返回-1
str='my name is'
print(str.find('n'))
执行结果为3
rfind()获取指定字符串中某一特定字符的最右边的索引(类似于列表的下标),效果同rindex()
str='my name is'
print(str.rfind('m'))
执行结果为5
encode() 方法以 encoding 指定的编码格式编码字符串
str='my name is'
print(str.encode(encoding='UTF-8'))
执行结果为
b'my name is'
split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num 个子字符串,默认用空格进行分裂,输出结果为列表。
str='my name is'
print(str.split(' ',1))
执行结果为
['my', 'name is']
rsplit() 通过指定分隔符对字符串进行切片,从右边开始,如果参数 num 有指定值,则仅分隔 num 个子字符串,默认用空格进行分裂,输出结果为列表。
str='my name is'
print(str.rsplit(' ',1))
执行结果为
['my name', 'is']
splitlines() 按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为False,不包含换行符,如果为 True,则保留换行符。
str='my \n name is'
print(str.splitlines())
执行结果为
['my ', ' name is']
partition() 方法用来根据指定的分隔符将字符串进行分割。
如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。
str='www.baidu.com'
print(str.partition('.'))
执行结果
('www', '.', 'baidu.com')
rpartition() 方法用来根据指定的分隔符将字符串从右边进行分割。
str='www.baidu.com'
print(str.rpartition('.'))
执行结果
('www.baidu', '.', 'com')
title() 方法返回’标题化’的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见istitle())
str='www baidu com'
print(str.title())
执行结果
Www Baidu Com
replace()将字符串中特定字符或字符串用指定字符或字符串替换。
str='www baidu com'
print(str.replace('w','h'))
执行结果
hhh baidu com
join() 方法用于把了表或元组中的所有元素放入一个字符串,常常用于字符连接操作。
print(''.join(['a','b','c']))
执行结果abc
maketrans() 函数是生成一个翻译表,比如将‘abcdef’,按照顺序翻译成’123456’。
translate()函数和replace函数一样,用于替换字符串中的某个部分,但是和replace不同,translate只处理单个字符,而且可以同时进行多个替换。在使用translate函数转换之前,需要一张转换表,转换表中是以某个字符替换某个字符的对应关系,这个表中有256个字符,我们可以通过使用string模块中的maketrans函数简化这一操作
p=str.maketrans('abcdef','123456')
print('hello abc'.translate(p))
执行结果
h5llo 123
swapcase()将字符串中的大写变小写,小写变大写
print('hello ABC'.swapcase())
执行结果:
HELLO abc