字符串:字符序列
字符串是不可变的;python不支持单字符类型,单字符也是作为一个字符串使用
调用print时,会自动打印一个换行符,end='任意字符串'可以实现末尾添加任何内容
字符串的编码:ord():可以把字符转换成对应的Unicode码
chr():十进制数字转换成对应的字符
字符串的创建:单引号或双引号创建,如a='abc';b="sxt"
连续三个单引号或三个双引号创建多行字符串
空字符串 c=''
转义字符:\(行尾) 续行符 \\ 反斜杠符号 \' 单引号
\" 双引号 \b 退格 \n 换行 \t 横向制表符
\r 回车
从控制台读取子字符串:input()
实现数字转型字符串:str() 调用print()函数时,解释器自动调用了str()见非字符串对象转换为
字符串
提取字符:[] 在[]里指定偏移量,提取该位置的单个字符
正向搜索:最左侧第一个字符偏移量为0,直到len(str)-1
反向搜索:最右侧第一个字符偏移量为-1,直到-len(str)
字符串替换:replace() a=a.replace('c','t'),实际上是创建了新的字符串对象,并指向了变量a
字符串切片slice操作:[起始偏移量start:中止偏移量end:步长step] 从start提取到end-1,步长
为step。步长为负时,从右到左反向提取。例如,'abc'[:]
字符串拼接:用+将多个字符串连接,两边类型要一致
将多个字符串直接放到仪器实现拼接,如:'aa' 'bb'==>'aabb'
join() 将一系列子字符串链接起来,如:a=['sxt','syt'] '*'.join(a)==>>'sxt*syt'
字符串复制:使用*可实现字符串复制,如a='taotao'*3>>a 'taotaotao'
字符串分割:split() 可指定分隔符将字符串分隔成多个字符串,不指定分隔符时,则默认使用
空白字符,如a.split()
字符串驻留:仅保存一份相同且不可变字符串的方法;对于符合标识符规则的字符串(仅包含下划
线、字母和数字)
a='abc_33' b='abc_33' a is b ==>>True
c='dd##' d='cd##' c is d ==>>False
str1='aa' str2='bb' str1+str2 is 'aabb' ==>>False
成员操作符:in/not in 关键字,判断某个字符(子字符串)是否存在字符串中
常用查找方法:len(a) 字符串长度 a.startswith('b') 是否以指定字符串开头
a.endswith('ss') 是否以指定字符串结尾
a.find('b') 第一次出现指定字符串的位置
a.rfind('b') 最后一次出现指定字符串的位置
a.count('aa') 指定字符串出现了几次
a.isalnum() 是否所有字符全是字母或数字
a.isalpha() 字符串是否只由字母组成(含汉字)
a.isdigit() 字符串是否只由数字组成 a.isspace() 是否为空白符
a.isupper() 是否为大写字母 a.islower() 是否为小写字母
去除首尾信息:strip() 去除字符串首尾指定信息,如"*t*a*o*".strip("*")==>>'t*a*o'
lstrip() 去除字符串左边指定信息 rstrip() 去除字符串右边指定信息
大小写转换:a.capitalize() 第一个字母大写 a.title() 每个单词都首字母大写
a.upper() 所有字母都转成大写 a.lower() 所有字母都转成小写
a.swapcase() 所有字母大小写转换 这些操作都生成新的字符串
格式排版:center() 居中,如a='tao' a.center(10) ==>>' tao '
ljust() 左对齐,如a='tao' a.ljust(10,'*') ==>>'tao**********'
rjust() 右对齐
字符串格式化:str.format()
a="名字是:{0},年龄是:{1}" a.format("taotao",22)==>>'名字是:桃桃,年龄是22'
b="名字是{name},年龄是{age}' b.format(age=19,name='taotao')==>>'名字是
taotao,年龄是19'
^ > < 居中、左对齐、右对齐,后面带宽度,:后带填充字符,只能是一个,不
指定默认空格,如"{:*>8}".format(""245)==>>'*****245'
数字格式化:浮点数通过f,整数通过d,如:a="我是{0},我存款是{1:.2f}"
a.format("taotao",388.1123)==>>'我是taotao,我的存款由388.11'
一些格式:{:.2f} 保留小数点后两位 {:+.2f} 带符号保留小数点后两位
{:.0f} 不带小数 {:0>2d} 数字补零(填充左边,宽度为2)
{:x<4d} 数字补x(填充右边,宽度为4) {:,} 以逗号分割的数字格式
{:.2%} 百分比格式 {:.2e} 指数记法
可变字符串:源地址修改字符串,使用io.StringIO对象或array模块
import io
s="hello,taotao"
sio=io.StringIO(s)
sio.seek(7)
sio.write('g')
print(sio.getvalue()) ##结果为hello,tgotao