字符串是Python标准类型之一,是由单引号或者双引号括起来的字符系列。字符串是常量,即改变字符串任何字符都需要重新创建新的字符串对象,在Python中有大小写之分。

字符串的创建


        创建一个字符串可以通过将一个字符串赋值给一个变量的方式来创建,也可以通过工厂函数str()来创建。


>>> #字符串的创建
>>> #将一个字符串赋值给一个变量
>>> str1 = 'this is a string'
>>> str1
'this is a string'
>>> str2 = "this is a another string"
>>> str2
'this is a another string'
>>> #python 中单引号和双引号的作用是相同的
>>> #用工厂函数str()创建字符串
>>> str3 = str('python string')
>>> str3
'python string'

字符串操作符


        字符串是由独立的字符组成,并且字符串和列表同属于系列,所以,和列表一样,字符串也可以通过索引和切片来访问字符或者子字符串。除标准类型操作符以外,Python还提供了特有的操作符对字符串进行操作。

索引和切片


        字符串的索引和切片与列表近乎相同,其具体操作详见列表章节。


成员操作符(in,not in)


        成员操作符用户判断某个字符串是不是另一个字符串的子串,如果是返回True,否则返回False。


>>> #成员操作符(in,not in)
>>> parent = 'abcd1234efg'
>>> child1 = 'abcd'
>>> child1 in parent
True
>>> child2 = 'bd'
>>> child2 not in parent
True
>>> child3 = 'egfh'
>>> child3 in parent
False

连接符(+)


        连接符是将两个字符串连接起来,第二个字符串接在第一个字符串的后面。


>>> #字符串连接符(+)
>>> str1 = 'abcd'
>>> str2 = 'efgh'
>>> str1 + str2
'abcdefgh'
>>> str1 + ' ' + str2
'abcd efgh'

重复操作符(*)


       重复操作符就是将某个字符连接多次。

>>> #重复操作符
>>> '*' * 30
'******************************'
>>> 'python' * 5
'pythonpythonpythonpythonpython'

格式化操作符



        格式化操作符用于控制字符串的格式,使字符串能够按照某种格式输出,在字符串中用得较多是s%:



>>> #格式户字符串
>>> #%s可以替换某个字符串或者字符串变量
>>> 'hello,%s' % 'Tom'
'hello,Tom'
>>> #%s也可以同时替换多个字符串,传入参数为元组
>>> name = 'Tom'
>>> 'hello,%s,%s' %(name,'how are you?')
'hello,Tom,how are you?'

字符串内建函数


        Python提供了许多内建函数(使用时不需要导入任何模块)来操作字符串,利用这些函数,我们可以对字符串进行各种操作。


string.capitalize():将字符串的第一个字符大写



string.count(str,beg=0,end=len(string)):返回beg和end之间str在string中出现的次数



string.decode(encoding='UTF-8',erroes='strict'):按照encoding指定的编码对字符串string进行解码,默认情况下,erroes为strict,当编码错误时触发UnicodeDecodeError异常



string.encode(encoding='UTF-8',errors='strict'):按照encoding指定的编码对字符串string进行编码,参数和decode相同



string.endwith(obj,beg=0,end=len(string)):在指定范围内,string是否是以obj结束



string.find(str,beg=0,end=len(string)):返回指定范围内str开始的索引,如果没有找到则返回-1



string.index(str,beg=0,end=len(string)):和find一样,不过str找不到是会报ValueError异常



string.join(seq):以string作为分隔符,将系列seq连接成一个新的字符串



string.lower():将string全部转化为小写字母



string.lstrip():去掉字符串左边的空格



string.replace(old,new[,count]):用new代替string中old,如果count指定,则代替的次数不超过count



string.split([sep[,count]]):用seq分隔字符串string,如果seq没有指定,则任何的空格字符都是分隔符,count是分割的最大次数



string.strip():去掉字符串string两端的字符



string.upper():将字符串全部转化为大写字母



>>> #字符串内建函数
>>> #capitalize()
>>> string = 'how do you do?'
>>> string.capitalize()
'How do you do?'
>>> #count()
>>> string.count('o')
4
>>> string.endswith('you')
False
>>> #find
>>> string.find('do')
4
>>> string.index('you')
7
>>> '*'.join(['how','are','you'])
'how*are*you'
>>> #用*把系列['how','are','you']连接起来
>>> #split和jion相反
>>> string.split(' ')
['how', 'do', 'you', 'do?']
>>> #大小写转换
>>> string.upper()
'HOW DO YOU DO?'
>>> string.lower()
'how do you do?'

        除了以上函数,Python当然还有其他的内建函数,但用法相对简单,详细使用方法请查找Python官方文档。