/ 2018-07-02
字符串是 Python 中最常用的数据类型,我们可以使用引号('或")来创建字符串。
一. 定义字符串
>>> str1 = "Alex" >>> str2 = "Alex 骑着自行车去上班"
二. 字符串的索引与切片
索引
>>> str1 = "Alex Mouse" >>> print(str1[0]) A >>> print(str1[1]) l >>> print(str1[2]) e >>> print(str1[3]) x >>> print(str1[-1]) e
切片
>>> str1 = "Alex Mouse" >>> print(str1) Alex Mouse >>> print(str1[0:]) #打印索引0之后的内容,包括索引为0的内容 Alex Mouse >>> print(str1[0:4]) #打印索引为0-4的内容 Alex >>> print(str1[2:7]) #打印索引为2-7的内容,不包括索引为7的内容 ex Mo >>> print(str1[:]) #打印全部内容 Alex Mouse
切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串。原则就是顾头不顾尾巴。
三. 字符串的常用方法
1. capitalize():首字母大写,其他字母小写。
>>> str1 = "alex is a bird" >>> print(str1.capitalize()) 计算结果: Alex is a bird
2. swapcase():大小写反转。
>>> str1 = "Alex is a bird" >>> print(str1.swapcase()) 计算结果: aLEX IS A BIRD
3. title():非字母隔开的部分,首字母大写,其余字母小写。
>>> str1 = "Alex is a bird" >>> print(str1.title()) 计算结果: Alex Is A Bird
4. upper():全部大写。
>>> str1 = "Alex is a bird" >>> print(str1.upper()) 计算结果: ALEX IS A BIRD
5.lower():全部小写。
>>> str1 = "Alex is a bird" >>> print(str1.lower()) 计算结果: alex is a bird
6. center():内容居中显示,填充物默认为空。
>>> str1 = "Alex is a bird" >>> print(str1.center(20)) #不够20个字符,用空格表示 >>> print(str1.center(20,"*")) ##不够20个字符,用*表示 计算结果: Alex is a bird ***Alex is a bird***
7. find():通过元素找索引,可以整体找,可以切片,找不到则返回-1。
>>> str1 = "Alex is a bird" >>> print(str1.find('bird')) #字符串中寻找bird,返回匹配到的第一个字母的索引 >>> print(str1.find('Alex')) >>> print(str1.find('xxx')) #如果匹配不到,返回-1 >>> print(str1.find('Bird',1,5)) #在第一个索引和第5个索引中寻找 计算结果: 10 0 -1 -1
8. index():通过元素找索引,可以整体找,可以切片,找不到会报错。
>>> str1 = "Alex is a bird" >>> print(str1.index("Alex")) >>> print(str1.index("xxx")) #匹配不到报错 计算结果: 0 Traceback (most recent call last): File "", line 1, in ValueError: substring not found
9. startswith(obj):检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。
>>> str1 = "Alex is a bird" >>> print(str1.startswith("A")) 计算结果: True
10. endswith(obj):检查字符串是否是以 obj 结尾,是则返回 True,否则返回 False。
>>> str1 = "Alex is a bird" >>> print(str1.endswith("bird")) 计算结果 True
11. strip():去除字符串前后两端的空格或其他字符,换行符,tab键等。
>>> str1 = "***Alex***" >>> print(str1.strip("*")) #去除两边的* >>> print(str1.lstrip("*")) #去除左边的* >>> print(str1.rstrip("*")) #去除右边的* 计算结果 Alex Alex*** ***Alex
12. replace(oldstr, newstr):替换字符串。
>>> str1 = "Alex is a bird" >>> print(str1.replace("bird","dog")) #将bird改为dog 计算结果 Alex is a dog
13. isalpha():字符串只由字母组成。
>>> str1 = "Alex" >>> print(str1.isalpha()) True >>> str1 = "Alex is a bird" >>> print(str1.isalpha()) #字符串中包含空格,所以为False False
14. isdigit():字符串只由数字组成。
>>> str1 = "alex" >>> print(str1.isdigit()) False >>> str1 = "110" >>> print(str1.isdigit()) #字符串如果都为数字,为True True
15. format():格式化字符串。
方式一:按位置传参 >>> str1 = '我叫{},今年{}岁' >>> str2 = '我叫{},今年{}岁'.format('Alex',53) >>> print(str2) 我叫Alex,今年53岁 方式二:按索引传参 >>> str1 = '我叫{0},今年{1}岁,大家都叫我{0}' >>> str2 = '我叫{0},今年{1}岁,大家都叫我{0}'.format('alex',53) >>> print(str2) 我叫alex,今年53岁,大家都叫我alex 方式三:按key传参 >>> str1 = '我叫{name},今年{age}岁' >>> str2 = '我叫{name},今年{age}岁'.format(age=53,name='Alex') >>> print(str2) 我叫Alex,今年53岁
16. count():统计元素在字符串出现的次数。
>>> str1 = "Alex is a bird" >>> print(str1.count('i')) #统计字母i在字符串中出现的次数 2
(4)