python字符串
前面python办公自动化有讲部分,这里主要学习操作:
chr(编号) #打印对应unicode字符 例如:chr(88) 打印结果: ‘X’
ord(字符) #打印unicode编号 例如:ord("B") 打印结果:’66‘
str(数据) #可以将数值,如整数、浮点数、布尔型数值转换为字符串
[] #提取字符【正想搜索:从左面偏移0开始,负向搜索与之相反】
对象.replace(将被替换的字符串,使用此字符串替换) #替换字符串,生成新字符串,并不修改原字符串。
slice #字符串切片【a[1:5],切1~5,不包含5的四个字符,len[a(1:5)],打印为4的长度,具体用法看10】
split() #分割字符串
join() #拼接字符串,拼接时尽量用此,优化性能。
in 或者not in #判断谋字符串是否在另一个字符串内。
format() #字符串格式化:a="名字是:{0},性别是:{1}",通过{}占位符来占位,为后面随时修改做准备,赋值b=a.format("cisco","sex")写法2:a="名字是:{name},性别是:{sex}" ,b=a.format("name=cisco",sex="sex")
填充跟对齐一起使用^居中,>右对齐,<左对齐。 使用方法,在{}中这样写居中右对齐*填充{"^*>"},其中还可以写字符数目
可变字符串对象:io #反复需要修改字符串的时候
import io
s="dasdasd"
sio=io.StringIO(s)
sio=io.getvalue()
sio.write("dsdvvvv")
数字格式化:【略】
字符串常用的查找方法:
len() #返回长度
startswith() #返回True或False,表示以某个字符串开头
endswith() #返回True或False,表示以某个字符串结尾
find() #返回字符串第一次出现的位置
rfind() #返回字符串最后以此出现的位置
count() #统计字符串出现的次数
isalnum() #所有字符全是字母或者数字,返回True或False
字符串去除首尾:
strip()
去除左边的字符串:
lstrip()
去除右边的字符串:rstrip()
大小写转换:
title() #产生新的字符串。每个单词首字母大写
capitalize() #产生新的字符串,首字母大写
upper() #产生新的字符串,所有字符全部转成大写
lower() #.........................................................小写
swapcase() #产生新的,所有字母大小写转换【大写变小写,小写变大写】
格式排版:
center(num,str) #居中,左右用某字符填充
ljust(num,str) #左对齐,..............................
rjust(num,str) #右对齐...............................
其他方法:
检测:
isalnum() #是否为字母或数字
isalpha() #是否是由字母(包含汉字)组成
isdigit() #......是由数字组成
isspace() #检查是否为空白符
isupper() #是否为大写字母
islower() #是否为小写字母
python的字符串驻留机制【这个很溜,只要符合字母或数字或下划线构成的字符串,自动驻留内存,测试a="a_b" b="a_b" ,使用a is b测试时,返回True,其他符号拼接则不会如此】
******能使用自带的就使用自带的,这样可以使程序最优化,除非你有更好的优化。
一、给变量赋值字符串等问题
1、使用
aa=""" 字符串1 字符串2 """
时,打印会自动加入\n,即
'\n字符串1\n字符串2\n'
【可知,\n会被加入,并且使用len(aa)计算长度时,会把\n计算入内,len(aa)此处的长度为14,自行验证,各种可能】
2、使用
aa="\ a\ b\ c\ "
时,就不会出现1中的情况,打印时为
'abc'
长度则为3
3、转义字符:
\ 续行符【2中使用情况】
\\ 反斜杠符号【即单个\】
\‘ 单引号【'】
\b 退格【BackApace】
\t 换行制表符
\r 回车
4、字符串拼接
a="sdsddds"+"ddffdd" 【必须都是字符串】
a="sdsdsd"+str(123) 【可以使用str来拼接数值】
5、字符串复制
a="we"*3 【表示复制两次,加上原来共三次,结果wewewe。】
6、print打印:
print("sxt",end='*')
表示在打印完后在结尾加end='*'的*字符串。
7、从控制台输入:
a = input("请输入:")【input进行了阻塞和中断,会先显示请输入:然后用户输入数据,回车,输入的数值再赋值给a】
8、使用[]搜索字符
a="abcdefghijklmnopqrstuvwxyz"
a[1]
打印结果:
b
9、replace替换字符
a.replace('b','n')
将a中的'b'替换成'n'
10、字符串切片slice
a[1:5]
打印1到4的字符
a[3:]
从3打印到结束
a[:9]
从0打印到8
a[-3:-9]
从倒数第个开始往前到倒数第8.
结合上面探索。
a[::2]表示从0开始取,步长为2
11、字符串切割【split】【默认空格,换行符,制表符分割】
如a="a b c b e"
a.split()
结果:
['a','b','c','b','e']
使用自定义的分割:
a.split('字符串')
如:
>>> a.split("we")
打印结果
['qr', 'ui', 'hj', '']
12、字符串合并【join】
a.join("sdasd")
join效率测试略【由于不会与前面单纯使用+拼接一样产生新对象,从而效率更高】