2_字符串
1. 字符串的比较
1.1 单个字符的比较
s='a'
d=97
>>>ord(s)
97 ##返回该字符的ASCII码
>>>chr(d)
a ##返回该整数对应的字符
1.2 多字符的比较
>>>'ab'<'abc' ##前缀一样,谁长谁叼
True
>>>'ab'<'ac' ##顺序比较,谁第一个字符大谁叼
True
2. 常用字符串方法
2.1 子串查找
s='apple,peach,banana,peach,pear'
sub='peach'
>>>s.find(sub) ##返回子串第一个字符出现的位置
6
>>>s.find(sub,7) ##指明从哪开始找
19
>>>s.find(sub,7,20) ##找不到返回-1
-1
>>>s.rfind(sub) ##逆向查找子串的位置
19
>>>s.index(sub,7,20) ##找不到返回异常
ValueError
>>>s.partition(sub) ##以第一个子串为中间值返回一个三元组
('apple,', 'peach', ',banana,peach,pear')
2.2 字符串分割
s='apple,peach,banana,peach,pear'
>>>li=s.split(',',1) ##以分隔符逗号划分字符串1次,返回列表形式
['apple', 'peach,banana,peach,pear']
ss='''I am
a
good
student
!
'''
>>>s.splitlines() ##以行为分割,返回列表形式
['I am', 'a', 'good', 'student', '!']
2.3 字符串连接
li=['apple','peach','banana','peach','pear']
sep=','
>>>s=sep.join(li) ##以分隔符逗号连接列表中的元素,返回字符串
'apple,peach,banana,peach,pear'
2.4 字符串替换
s='apple,peach,banana,peach,pear'
>>>s1=s.replace('peach','apple') ##用apple替换字符串中的所有peach
'apple,apple,banana,apple,pear'
>>>s2=s.replace('peach','apple',1) ##指定替换次数(顺序)
'apple,apple,banana,peach,pear'
2.5 删除空格
s=' a b c '
>>>s1=s.strip( ) ##删除字符串的首尾空格
'a b c'
>>>s2=''.join(s.split(' ')) ##组合方法删除字符串中的所有空格
'abc' ##同理其他字符也可以
2.5 计数子串次数
s='apple,peach,banana,peach,pear'
sub='peach'
>>>cnt=s.count(sub,1,30) ##在指定起始位置计算子串出现的次数
2
3. 格式化字符串
3.1 格式化命令的通用结构:
\[\%[(name)][flags][width].[precision]typecode
\]
3.2 format函数格式化
3.2.1 通过位置匹配参数
>>>'{0},{1}'.format('a','b')
'a,b'
>>>'{1},{0}'.format('a','b')
'b,a'
3.2.1 通过名称匹配参数
>>>'{color} and {food}'.format(color='red',food='egg')
'red and egg'
3.2.1 指定进制
>>>'int:{0:d};hex:{0:x};oct:{0:o};bin:{0:b};'.format(42)
'int: 42;hex: 2a;oct: 52;bin: 101010'
>>>'int:{0:d};hex:{0:#x};oct:{0:#o};bin:{0:#b};'.format(42)
'int: 42;hex: 0x2a;oct: 0o52;bin: 0b101010'
3.3 格式规约
>>>'{:<20}'.format('left aligned')
>>>'{:>20}'.format('left aligned')
>>>'{:^20}'.format('left aligned')
>>>'{:20}'.format('left aligned')
>>>'{:-^20}'.format('left aligned')
>>>'{:.<20}'.format('left aligned')
>>>'{:.20}'.format('left aligned')
'left aligned '
' left aligned'
' left aligned '
'left aligned '
'----left aligned----'
'left aligned........'
'left aligned'
4. 字符串遍历
4.1 普通遍历
s='information'
>>>length=len(s)
>>>for x in range(length):
print(x,end=' ')
0 1 2 3 4 5 6 7 8 9 10
>>>for x in range(length):
print(s[x],end=' ')
i n f o r m a t i o n
4.2 迭代器遍历
s='information'
>>>for index,x in enumerate(s):
print(index,x)
0 i
1 n
2 f
3 o
4 r
5 m
6 a
7 t
8 i
9 o
10 n