python3
字符串相关操作
字符串连接符号 +
字符串复制操作 例子:‘ * ’ * 20 复制了20个星星
通过指定位置(索引)来获取指定位置的字符 [] 例子 str[1]来获取第二个字符
取片操作[ : ]
[ : ] 获取所有字符
[ 开始位置: ] 从开始位置获取到字符串的结尾
[:结束位置]从字符串的开头街区到字符串结束位置之前(左闭右开 不包含末尾位置的字符)
[ 开始位置; 结束为止 ] 从字符串的开始位置取到结束位置之前(左闭右开 ,不包含末尾位置的字符)
r'字符串'
防止字符串中的转移字符串实现功能, 把转义字符当作普通字符使用
字符串相关函数
注意:以下的str不是模块名称 ,二十一个字符串变量!
capitalize() 首字母大写
格式 : str.capitalize()
返回值:首字母大写的字符串, 仅把整个字符串的第一个字符大写
upper()将所有英文字符变为大写
格式 :str.upper()
返回值:所有英文字符大写的字符串
lower()将所有英文字符变为小写
格式: str.lower()
返回值:所有英文字符小写的字符串
swapcase()大小写互相转换
格式: str.swaocase()
返回值:转换之后的字符串
title()按照标题格式进行大小写转换(每个单词首字母大写)
格式:str.title()
返回值:返回所有英文单词首字母大写的字符串
len()计算字符串的字符个数,以后也可以用于计算元组列表等序列
格式:len(str)
返回值:整型
count()计算一个字符串中出现指定字符串的次数
格式:str.count(查找的字符串 , 开始位置 , 结束位置)
返回值:整型
find()查找字符串中是否具有指定的字符串,查找不到返回-1
个事故:str.find( 查找的字符串 , 开始位置 , 结束位置)
返回值:第一次出现的位置
index()查找字符串中是否具有指定的字符串,查找不到直接报错
格式:str.index(查找的字符)
返回值:第一次出现的位置
其中 find()和index()功能基本相似
startswith()检测字符串是否以指定的字符串开头
格式:str.startswith( 查找的字符串 , 开始位置 , 结束位置)
返回值:布尔值
endswith()检测字符串是否以指定的字符串结尾
格式:str.endswith(查找的字符串 , 开始位置, 结束位置)
isupper()检测字符串中字母是否都是大写字母
格式:str.isupper()
返回值:布尔值
islower()检测字符串中的字母是否都是小写字母
格式:str.islower()
返回值:布尔值
isalnum()检测一个字符串是否都是有数字或者是否都是由字母组成
格式:str.isalnum()
返回值:布尔值
空字符串返回False
isdigit()检测字符串是否由纯数字字符组成
格式:str.isdigit()
返回值:布尔值
空字符串返回False
isspace()检测字符串是否完全由空白字符组成
格式:str.isspace()
返回值:布尔值
回车, 换行,缩进,空额都可以当作空白字符,空字符串是False;
istitle()检测字符串是否符合title()的结果,每个单词首字母大写
格式:str.istitle()
返回值:布尔型
isnumeric()检测字符串是否由纯数字组成
格式: str.isnumeric()
返回值:布尔值
isdecimal()检测字符串是否完全由十进制字符组成
格式:str.isdecimal()
返回值:布尔值
split()使用指定的字符将字符串拆解成多个字符串
格式:str.split('用于拆解的字符串')
返回值:列表类型
splitliness()使用\n,\r或者\r\n切割字符串
格式:str.splitliness()
返回值:列表类型
join()使用指定的字符串将序列中的内容组成新的字符串
格式:连接字符串.join(序列)
返回值:组成新的字符串
zfill()0填充操作
格式:str.zfill(长度)
返回值,填充0的字符串
填充结果原有内容靠右对齐,前面位数不足使用0来补充,常用于数字类型字符串
cente )将字符串进行居中操作,并且在空白处进行填充
格式:str.center(未来字符宽度,空白填充字符)
返回值:新的字符串
ljust()将字符串进行左对齐操作,并且在空白处进行填充
格式:str.ljust(未来字符宽度,空白填充字符)
返回值:新的字符串
rjust()将字符串进行右对齐操作,并且在空白处进行填充
格式:str.rjust(未来字符宽度,空白填充字符)
返回值:新的字符串
lstrip() 去掉字符串左侧的空白
格式: str.lstrip()
返回值:字符串
rstrip()去掉字符串右侧的空白
格式: str.rstrip()
返回值:字符串
strip()去掉字符串两侧的空白
格式: str.strip()
返回值:字符串
replace()字符串替换操作
格式:str.replace(被替换的字符串,替换字符串)
返回值:替换之后的字符串
maketrans()制作一个字符串映射表,为了给translate函数使用
格式:str.maketrans('被替换的字符串' ,'替换字符串')
返回值:字典类型,被替换字符串组成键 , 替换字符串组成值
注意: 两个参数的字符串个数必须一一对应,这里的str不是值字符串
而是真正的str,也可以写空字符串代替str(字符串都是str制作的)
translate()进行字符串翻译操作,类似转换
格式:str.translate(映射表)
返回值:新的字符串
注意:translate用于多字符替换,replace用于长字符串替换
获取所有的空白字符
result = string.whitespace
print(result)
\n \r \t \x0b\0c
获取ascii码的所有字母表(包含大写和小写)
print(string.ascii_letters)
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
获取ascii码中的所有大写字母
print(string.ascii_uppercase)
ABCDEFGHIJKLMNOPQRSTUVWXYZ
获取ascii码中所有的小写字母
print(string.ascii_lowercase)
abcdefghijklmnopqrstuvwxyz
获取ascii码中所有10进制数字字符
print(string.digits)
0123456789
获取八进制所有数字字符
print(string.octdigits)
01234567
获取十六进制的所有数字字符
print(string.hexdigits)
0123456789abcdefABCDEF
打印所有可见字符
print(string.printavle)
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"$%&'()*+,-./:;<=>?@[\]^_`{|}~
打印所有标点符号
print(string.punctuation)
!"$%&'()*+,-./:;<=>?@[\]^_`{|}~
format格式字符串
'''
语法: 它通过{}和:来代替%。
注意:字符串的format函数可以接受无限个参数,位置可以不按顺序,可以不用或者用多次,不过2.6不能为空{},2.7才可以。
“映射”示例
通过位置
In [1]: '{0},{1}'.format('kzc',18)
Out[1]: 'kzc,18'
In [2]: '{},{}'.format('kzc',18)
Out[2]: 'kzc,18'
In [3]: '{1},{0},{1}'.format('kzc',18)
Out[3]: '18,kzc,18'
通过关键字参数
In [5]: '{name},{age}'.format(age=18,name='kzc')
Out[5]: 'kzc,18'
通过对象属性
class Person:
def __init__(self,name,age):
self.name,self.age = name,age
def __str__(self):
return 'This guy is {self.name},is {self.age} old'.format(self=self)
In [2]: str(Person('kzc',18))
Out[2]: 'This guy is kzc,is 18 old'
通过下标
In [7]: p=['kzc',18]
In [8]: '{0[0]},{0[1]}'.format(p)
Out[8]: 'kzc,18'
有了这些便捷的“映射”方式,我们就有了偷懒利器。基本的Python知识告诉我们,list和tuple可以通过“打散”成普通参数给函数,而dict可以打散成关键字参数给函数(通过和*)。所以可以轻松的传个list/tuple/dict给format函数。非常灵活。
格式限定符号
它有着丰富的“格式限定符”(语法是花括号{}带冒号:),如:
填充与对齐: 填充常跟对齐一起使用
居中 = ^
左对齐 = <
右对齐 = >
后面带宽度 = :号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充,如下:
In [15]: '{:>8}'.format('189')
Out[15]: ' 189'
In [16]: '{:0>8}'.format('189')
Out[16]: '00000189'
In [17]: '{:a>8}'.format('189')
Out[17]: 'aaaaa189'
精度与类型f: 精度常跟类型f一起使用
In [44]: '{:.2f}'.format(321.33345)
Out[44]: '321.33'
其中.2表示长度为2的精度,f表示float类型。 其他类型: 主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。
In [54]: '{:b}'.format(17)
Out[54]: '10001'
In [55]: '{:d}'.format(17)
Out[55]: '17'
In [56]: '{:o}'.format(17)
Out[56]: '21'
In [57]: '{:x}'.format(17)
Out[57]: '11'
逗号,还能用来做金额的千位分隔符:
In [47]: '{:,}'.format(1234567890)
Out[47]: '1,234,567,890'
'''