Python数据类型之字符串
一.字符串
用于表示和存储文本,是不可变的序列。字符串中可用单引号、双引号、三引号表示,三引号可用跨行。
常见的转义字符:
\n 换行符 \t 制表符 \r 回车
\\ 表示'\' \' 表示单引号 \" 表示双引号
原始字符串:
“\"表示转义字符,比如路径”c:\notice your \nect",编译器会把\n认为是换行符
因为可以在字符串前面加入" R"或"r",r" c:\notice your \nect" 中,"\"不表示转义字符,但是路径的结尾不能是"\"
>>> path= r'c:\learn\'
SyntaxError: EOLwhile scanning string literal
2.字符串的常用操作:
>>> a ="hello,World"
>>>a.capitalize() #把字符串变成第一个字母大写,其余全部小写
'Hello,world'
>>>a.title() #将字符串中的首字母大写
'Hello,World'
>>>a.istitle() #判断字符串首字母是否为大写
False
>>>a.swapcase() #将字符串中的大写变成小写,小写变成大写
'HELLO,wORLD'
>>>a.upper() #将字符串中所有的字母变成大写
'HELLO,WORLD'
>>>a.lowwer() #将字符串中所有的字母变成小写
>>>a.count('l') #统计字符串“a”中字符“l”的个数
3
>>>a.find("l") #字符串a 中寻找第一次出现“l”的索引
2
>>>a.join("@@@") #用字符串a 把后面的字符串中的每个字符连接起来
'@hello,World@hello,World@'
>>>a.split(',') #使用“,”来分割字符串中的单词,如果没有参数,默认是空格
['hello', 'World']
>>>len(a) #求字符串的长度
11
>>> a +"! honey"
'hello,World!honey'
>>> a*3
'hello,Worldhello,Worldhello,World'
string.split( [sep [,maxsplit]] )
此函数将字符串以指定的字符分割,如果不指定字符,默认以空格分割字符串
sep : 可选参数,指定分割的字符,None 表示以空格分割
maxsplit : 可选参数 ,分割次数 0表示分割次数为0 既不分割
注意:分割符必须是字符串中已经有的字符 ,空白也算哦
>>> b ="l love python"
>>>b.split()
['l', 'love','python']
>>>b.split("o")
['l l', 've pyth','n']
>>>b.split('o',0)
['l love python']
>>>b.split(None,0)
['l love python']
>>> b.split(None,1)
['l', 'lovepython']
三、索引和分片
字符串是不可变的列表,里面的每个字符都有对应的索引,用[ ]来访问字符串中指定位置的字符
>>> strl= "beautiful"
>>>strl[2]
'a'
>>>strl[-1]
'l'
>>>strl[1:4]
'eau'
>>>strl[1:4:2] #步进为2,也就是索引为1,3
'eu'
>>>strl[:-1] #切片,如果没写出来 默认是第一个开始或者到最后一个结尾
'beautifu'
>>>strl[1:-1] #最后一个字符是-1,倒数第二个是-2。。。。
'eautifu'
四、格式化输出
在字符串中使用包含"%"的字符串,然后在脚本中改变字符串的内容
%c : 单个字符
%d : 十进制整数
%o : 八进制整数
%x : 十六进制整数,其中字母小写
%X:十六进制整数,其中字母大写
>>> s ="a %s day!"
>>> prints %'wonderful'
a wonderful day!
>>> '11%c 1 %c %d' %('+','=',12)
'11 + 1 = 12'
>>> 'b =%x' %0xA
'b = a'
>>> 'b =%X' %0Xa
'b = A'
五、字符串和数字的转换
string模块的string.atoi()可以将字符串转换为整数
string.atoi ( s [ ,base ] )
s : 进行转换的字符串
base : 可选参数,表示将字符转换成的进制类型,默认是十进制
>>>import string
>>>string.atoi('12',10) #把字符串中的数字 认为是参数中的进制
12
>>>string.atoi('12',16)
18