Python实战教程数据类型之字符串

    /    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)

分享至