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