字符串是python中重要的数据对象
python字符串是以单引号、双引号、或者三个三单引号三个双引号包含的任意的python数据对象都可以称为python字符串
注意以单引号或双引号包含的数据对象中间不可以换行(若需要换行需要用转义字符\n)以三个单引号或三个双引号可以包含多行的数据对象。
一、转义符
在任何的语言里都有转义符这样的概念存在转义符是让含有特殊意义的字符失去特殊的意义按照普通的形式打印。
例如我们需要打印出某个文件的路径
print ‘c:\note\takes.txt‘
执行结果为
c: ote akes.txt
这并不是我们想要的结果这时需要用转义字符使\n和\t这些含有特殊意义的字符失去本身的意义才会按照正确的格式打印出来。
print ‘c:\\note\\takes.txt‘
执行结果为
c:\note\takes.txt
也可以在字符串前面添加“r”使接下来的整个字符串中的特殊字符失去特殊的意义。
print r‘c:\note\takes.txt‘
二、字符串分片操作游标
字符串是有序的序列
索引开始从0开始结束为-1
分片操作包含索引开始值但是不包含终止值通常是终止值减1
字符串变量[游标]返回当前游标所对应的字符。
字符串变量[开始游标结束游标步长]开始游标指截取字符串的开始下标结束游标指截取字符串的结束下标步长是指游标的间隔数。注意截取的结果包括开始游标不包括结束游标开始游标可以省略省略默认为0结束游标可省省略默认为字符串末尾步长可省省略默认为1。
a=‘0123456789‘ print a[1] print a[-2] print a[2:4] print a[2:8:2] print a[:7:2] print a[2:7:] print a[2::]
执行结果为
1 8 23 246 0246 23456 23456789
三、字符串方法
字符串方法是针对字符串的操作方法已经定义并封装使用简化操作和代码重写
1.字符串填充方法
center(width[,fillchar])
字符串在指定长度内居中。
ljust(width[,fillchar])
字符串在指定长度内靠左对齐
rjust(width[,fillchar])
字符串在指定长度内靠右对齐
zfill(width)
zfill()即是以字符0进行填充在输出数值时比较常用
width宽度表示字符在什么宽度内居中该数值包括字符串本身的长度,若指定的长度小于字符串本身的长度该方法不会生效
fillchar可选参数表示以什么字符填充空白部分默认是空格。
注意若指定的长度过大运行窗口一行放不下时会换行显示影响显示效果。
a=‘0123456789‘ print a.center(50,‘*‘) print a.ljust(50,‘*‘) print a.rjust(50,‘*‘) print ‘1‘.zfill(2) print ‘10‘.zfill(2)
执行结果为
********************0123456789******************** 0123456789**************************************** ****************************************0123456789 01 10
expandtabs([tabsize])
expandtabs()的tabsize 参数默认为8。它的功能是把字符串中的制表符tab转换为适当数量的空格。
注意
tabsize参数包括从该制表符到它的上一个制表符的所有字符
若tabsize的值小于等于该制表符到它的上一个制表符的所有字符则显示的空格数是x*tabsize-该制表符到它的上一个制表符的所有字符数
若tabsize的值大于该制表符到它的上一个制表符的所有字符则显示的空格数是tabsize-该制表符到它的上一个制表符的所有字符数
a=‘123\twfdsf\tadfsd‘ b=‘012345678901234567890‘ print b print a.expandtabs(3) print a.expandtabs(2) print a.expandtabs(4) print a.expandtabs(7)
执行结果为
012345678901234567890 123 wfdsf adfsd 123 wfdsf adfsd 123 wfdsf adfsd 123 wfdsf adfsd
2.字符串删减方法
strip()函数族用以去除字符串两端的空白符
strip([chars]) 去掉字符串两端的指定的符号
rstrip([chars]) 去掉字符串右端的指定的符号
lstrip([chars]) 去掉字符串左端的指定的符号
chars可省参数表示要去掉的字符可以是多个字符省略默认为空格。
a=‘ adfasdff ‘ print a.strip() print a.lstrip() print a.rstrip() a=‘**********adfadsfasdfasd**********‘ print a.strip(‘*‘) print a.lstrip(‘*‘) print a.rstrip(‘*‘) a=‘*!*!*!*!*!adfadsfasdfasd*!*!*!*!‘ print a.strip(‘*!‘) print a.lstrip(‘*!‘) print a.rstrip(‘*!‘)
执行结果为
adfasdff adfasdff adfasdff adfadsfasdfasd adfadsfasdfasd********** **********adfadsfasdfasd adfadsfasdfasd adfadsfasdfasd*!*!*!*! *!*!*!*!*!adfadsfasdfasd
3.字符串变形方法
lower() 将字符串转换为小写
upper() 将字符串转换为大写
capialize() 首字母大写
swapcase() 大小写之间转换
title() 单词首字母大写(按空格等间隔符来区分单词,不能区分单词拼写是否正确)
a=‘Hello World,Python!‘ print a.lower() print a.upper() print a.capitalize() print a.swapcase() print a.title() a=‘hello world,python!‘ print a.capitalize() print a.title()
执行结果为:
hello world,python! HELLO WORLD,PYTHON! Hello world,python! hELLO wORLD,pYTHON! Hello World,Python! Hello world,python! Hello World,Python!
4.字符串切分方法
splitlines([keepends])返回一个列表,将字符串按行(\n)分隔,keepends,可选参数,若为True,会在列表中分割的子串中显示换行符(\n)若为False,不显示,默认为False。
split([sep[,maxsplit]])返回一个列表,将字符串按某个字符分隔。
rsplit([sep[,maxsplit]])返回一个列表,将字符串按某个字符分隔。(从右向左分隔)
sep,可选参数,按指定的字符分隔字符串,默认按空格,换行,制表符等符号分隔;
maxsplit,可选参数,指定分隔的次数,默认是分隔全部的字符串。
split和rsplit在不指定maxsplit参数的情况下,是完全相同的效果。
a=‘hello world python \ni am comming \nabc123‘ print a.splitlines() print a.splitlines(True) print a.split() print a.split(‘ ‘) print a.split(‘ ‘,4) print a.rsplit() print a.rsplit(‘ ‘) print a.rsplit(‘ ‘,4)
执行结果为:
[‘hello world python ‘, ‘i am comming ‘, ‘abc123‘] [‘hello world python \n‘, ‘i am comming \n‘, ‘abc123‘] [‘hello‘, ‘world‘, ‘python‘, ‘i‘, ‘am‘, ‘comming‘, ‘abc123‘] [‘hello‘, ‘world‘, ‘python‘, ‘\ni‘, ‘am‘, ‘comming‘, ‘\nabc123‘] [‘hello‘, ‘world‘, ‘python‘, ‘\ni‘, ‘am comming \nabc123‘] [‘hello‘, ‘world‘, ‘python‘, ‘i‘, ‘am‘, ‘comming‘, ‘abc123‘] [‘hello‘, ‘world‘, ‘python‘, ‘\ni‘, ‘am‘, ‘comming‘, ‘\nabc123‘] [‘hello world python‘, ‘\ni‘, ‘am‘, ‘comming‘, ‘\nabc123‘]
5.字符串连接方法
join(seq)将字符串的值插入到seq参数提供的字符串中
join() 函数的高效率(相对于循环相加而言),使它成为最值得关注的字符串方法之一
print ‘123‘.join(‘abcdef‘) print ‘Hello‘.join(‘|||‘)
执行结果为:
a123b123c123d123e123f |Hello|Hello|
6.字符串判断方法