字符串
很重要的类型也是方法最多的一个类型
定义:
被双引号或单引号引起来的对象称为字符串(三个单引号或三个双引号可以表示多行字符串)
s = 'xSHeLL 6 FrEE HOMe/sChoOL'
s = ""
s = str(123) 将一个对象转换成字符串
s = r'原样输出'
s = u'里面是unicode码'
格式化:
capitalize title lower upper swapcase
center rjust ljust zfill
expandtabs translate format
lower() 将一个字符串变成全小写 s.lower()
upper() 将一个字符串变成全大写 s.upper()
center() 将字符串居中 s.center(100)
translate() 根据一张表进行对应字符串
table = str.maketrans('abc','123')
s1 = 'abc haha today'
s1.translate(table)
format :格式化输出
'my name is {},my age is {}'.format('libai',30)
注意format中的值是有索引的,索引为 0 1 2 3
'my name is {0} {0} {0},my age is {1}'.format('libai',30)
'my name is {name},my age is {age}'.format(name='libai',age=30)
'{0:40}'.format(123) 以40个字符宽度输出123,默认居右
'{0:^40}'.format(123) 以40个字符宽度输出123,居中显示 (^居中,>居右, <居左)
'{0:=^40}'.format(123) 以40个字符宽度输出123,居中显示,如时字符不足40个,则用“=”填充,当也可以是其它字符
'{0:b}'.format(123) 转换成二进制
'{0:o}'.format(123) 转换成八进制
'{0:x}'.format(123) 转换成十六进制
'{0:.2f}'.format(123.6666) 保留两位小数
'{0:,}'.format(12663543) 千分位表示,一般用在钱上
当format参数为列表,和字典时(以后再讲)
判断方法:
islower isupper isalnum isalpha isdigit isspace istitle startswith endswith
isdigit() 判断一个字符串是不是一个自然数
isspace() 判断一个字符串是不是一个空字符 ' \n\r\f\t\v'.isspace()为真
startswith() 判断字符串是以什么来开头的 s.startswith('xSHeLL')
endswith() 判断字符串是以什么来结尾的 s.endswith('oOL')
切割查找:
count strip lstrip rstrip
split rsplit splitlines partition rpartition join
find rfind index rindex replace
count() 查看字符串中某一字符出现的次数 s.count('test')
strip() 去掉两侧的空字符 s.strip()
split([切割符,[次数]]) 默认以空字符作为切割依据
s.split()
s.split(':') 以冒号进行切割
s.split(':',2) 以冒号进行切割,并只切割两次
s.rsplit(':',2) 从右向左以冒号进行切割,并只切割两次
splitlines() 以\n换行作为切割符,一般和split('\n')效果一样
join() 是split的反方法。split返回一个列表,join可以将一个列表变成字符串
s3 = 'root:x:0:0:root:/root:/bin/bash'
tmp = s3.split(':')
':'.join(tmp)
'======='.join(tmp)
字符串是有索引的,从左向右的索引为 0 1 2 3
find() 在字符串中查找某一字符串的索引值,如果存在则返回索引值 ,否则返回 -1
index() 在字符串中查找某一字符串的索引值,如果存在则返回索引值 ,否则报错
replace() 替换字符串的中某些字符
s.replace('test1','test2')
序列操作
常见序列: 字符串 列表 元组 …
序列是有索引,从左向右 0 1 2 3 ,从右向左的索引 -1 -2 -3
因为索引是从0开始的,而数元素的个数是从1开始数。所以从左向右数最后一个元素的索引永远是长度减1
s = 'xshell 6 HAha home/school'
索引操作:
s[0] s[6] s[-1]
切片操作:
序列[起始索引:结束索引:步长] 结束索引无法取到,步长默认为1,即一个一个挨着取值
s[3:6] 取出索引位为 3 4 5 的
s[:6] 从头取到索引为 5的所有内容
s[6:] 从索引为6的位置取到最后
s[:] 从头取到尾
'0123456789'[::2] ==> 02468
s[::-1] 倒序
其它操作
加法 : 序列的拼接 'abc' + 'haha'
乘法 : 序列的重复 'abc' * 3
in : 判断序列中有某元素 'shell' in s
not in : 判断序列中没有某元素 'shell' not in s
len() : 求序列元素的个数 len(s)
max() : 求序列中最大的元素 max(s)
min() : 求序列中最小的元素 min(s)
练习:
字符串 S1 = ‘Today iSis a GoOd dAy’,将字符串变成小写并且取出 ‘isis’.
字符串S2 = ‘0123456789’ 取出 ’234567‘,取出偶数, 取出奇数。