当下 ║ 2018.08.11
人生苦短,我们都要用Python,大家要经常回看大纲~
考试内容二、Python语言基本数据类型
第三部分:字符串类型及格式化:索引、切片、基本的 format()格式化方法。
字符串 String
前面我们对Python的数据类型进行了介绍,这里对字符串类型进行回顾:
字符串是以单引号'或双引号"括起来的任意文本,字符串'ac'只有a,c这2个字符。如果'本身也是一个字符,那就可以用""括起来,比如"I'm Jack"包含的字符是I,',m,空格,J,a,c,K这8个字符。
这里需要介绍一下转义字符\,可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\,Python还允许用r''表示''内部的字符串默认不转义,如
>>>print(r'\\\m\\')
\\\m\\
Python允许用'''...'''的格式表示多行内容,如
>>>print('''line1
line2
line3''')
line1
line2
line3
索引、切片、基本的 format()格式化方法
字符串索引
如果要访问字符串的某个或某几个字符可以采用索引(index)方法,通过制定索引位置获得对应字符,当然也可以采用负数索引,如:
u1 = "a1b2c3"
print(u1[0])
a
print(u1[3])
2
print(u1[-1])
3
print(u1[-3])
2
字符串切片
切片操作(slice)可以从一个字符串中获取子字符串(字符串的一部分)。我们使用一对方括号、起始偏移量start、终止偏移量end 以及可选的步长step 来定义一个分片,左侧第一个字符的位置/偏移量为0,右侧最后一个字符的位置/偏移量为-1。
格式: [start:end:step]
• [:] 提取从开头(默认位置0)到结尾(默认位置-1)的整个字符串
• [start:] 从start 提取到结尾
• [:end] 从开头提取到end - 1
• [start:end] 从start 提取到end - 1
• [start:end:step] 从start 提取到end - 1,每step 个字符提取一个
下面给几个例子:
>>> letter = 'abcdef'
>>> letter[-3:]
'def'
从开头到结尾,step为N:
>>> letter[::5]
'ae'
将字符串倒转(reverse), 通过设置步长为负数:
>>> letter[::-1]
'fedcba'
字符串format()格式化方法
Python支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 % 的字符串中,如
>>> 'Hi, %s, you have $%d.' % (Jack, 100)
'Hi, Jack, you have $100.' #%s表示用字符串替换,%d表示用整数替换
另外,%f表示用浮点数替换,%x表示用十六进制整数替换。
format方法是python2.6新增的一个格式化字符串的方法,相对于老版的%格式方法,它有很多优点。
1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型
2.单个参数可以多次输出,参数顺序可以不相同
3.填充方式十分灵活,对齐方式十分强大
4.官方推荐用的方式,%方式将会在后面的版本被淘汰
>>> print 'hello {0}'.format('world')
hello world
一 填充
1.通过位置来填充字符串
>>> print 'hello {0} i am {1}'.format('Tom','Jack')
hello Tomi am Jack
>>> print 'hello {0} i am {1} . my name is {1}'.format('Tom','Jack')
hello Tom i am Jack. my name is Jack
foramt会把参数按位置顺序来填充到字符串中,第一个参数是0,然后1,…也可以不输入数字,这样也会按顺序来填充
同一个参数可以填充多次,这个是format比%先进的地方
2.通过key来填充
>>>print 'hello {name1} i am {name2}'.format(name1='Tom',name2='Jack')
hello Tomi am Jack
3.通过下标填充
>>>names=['Jack','Tom']
>>>print 'hello {names[0]} i am {names[1]}'.format(names=names)
hello Jacki am Tom
>>>print 'hello {0[0]} i am {0[1]}'.format(names)
hello Jacki am Tom
4.通过字典的key
>>>names={'name':'Jack','name2':'Tom'}
>>>print 'hello {names[name]} i am {names[name2]}'.format(names=names)
hello Jacki am Tom
注意访问字典的key,不用引号的。