python3字符串总结
目录
字符串的分类
普通字符串
>>> s='abs\ndf'
>>> s
'abs\ndf'
>>> print(s)
abs
df
>>> type(s)
<class 'str'>
原始字符串
所有的字符都是直接按照字面意思来使用的,没有转义特殊或不能打印的字符。
原始字符串除在字符串的第一个引号前加上字面“r”(不区分大小写)以外,与普通字符串有着几乎完全相同的语法
>>> s=r'abs\ndf'
>>> print(s)
abs\ndf
>>> type(s)
<class 'str'>
字节字符串
只需要在定义字符串时转换成字节字符串
>>> s='abs\ndf'.encode("utf-8")
>>> print(s)
b'abs\ndf'
>>> type(s)
<class 'bytes'>
字符串的基本操作
通用的操作
通用操作
- 索引
- 分片
- 成员资格
- 求长度
- 求最大值
- 求最小值
字符串特点
不可变性
字符串是不可变的,所以字符串做不了切片赋值
>>> filed="just do it"
>>> filed[-3:]
' it'
>>> filed[-3:]=my
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'my' is not defined
语句中输出两行
>>> print('精诚所至\n金石为开')
精诚所至
金石为开
python中的转义字符
转义字符 | 描述 | 转义字符 | 描述 |
\(在行尾) | 续行符 | \n | 换行 |
\\ | 反斜杠符号 | \v | 纵向制表符 |
\' | 单引号 | \t | 横向制表符 |
\" | 双引号 | \r | 回车 |
\a | 响铃 | \f | 换页 |
\b | 退格 | \oyy | 0表示8进制数,yy表示字符 |
\e | 转义 | \xyy | x表示16进制数,yy表示字符 |
\000 | 为空 | \o'ther | 其他字符以普通各式输出 |
字符串运算
操作符 | 描述 | 例(s1='abc')(s2='123') |
+ | 字符串连接 | >>> s1+s2 'abc123' |
* | 重复输出字符串 | >>> s1*2 'abcabc' |
[] | 通过索引获取字符串中的字符 | >>> s1[2] 'c' |
[:] | 截取字符串中的一部分 | >>> s1[0:2] 'ab' |
in | 成员运算符;若字符串中包含指定的字符串则返回True | >>> 'a' in s1 True |
not in | 成员运算符;若字符串中不包含指定的字符串则返回True | >>> 'f' not in s1 True |
r/R | 原始字符串 | >>> s=r"ac\nm" >>> print(s) ac\nm |
% | 格式化字符串 |
字符串格式化
基本用法是讲一个值插入到一个有字符串格式符%s的字符串中
字符串格式化符号(操作符%)
>>> print('hello,%s'%'world')
hello,world
>>> print('小明今年%s岁了'%10)
小明今年10岁了
格式化字符串的%s部分成为转换说明符,标记了需要 放置转换的位置,也名占位符
s表示百分号右边的值会被转换为字符串
字符串格式化符号
符号 | 描述 | 符号 | 描述 |
%c | 格式化字符及其ACSII码 | %f | 格式化浮点数字,可以指定精度值(默认输出6位小数) |
%s | 格式化字符串 | %e | 用科学记数法格式化浮点数 |
%d | 格式化整数 | %E | 作用同%e,用科学记数法格式化浮点数 |
%u | 格式化无符号整数 | %g | %f和%e的简写 |
%o | 格式化无符号8进制数 | %G | %f和%E的简写 |
%x | 格式化无符号16进制数 | %p | 用16进制数格式化变量的地址 |
%X | 格式化无符号16进制数 |
制定精度的格式为一个英文格式下的句点加上要希望保留的小数的位数
字符串格式化字典
>>> s=Template('there are ${key1}${key2} Quotations Symbol
>>> print(s.substitute(key2="a",key1=2))
there are 2a Quotations Symbols
字符串格式化元组
右操作数是元组
其中每一个元素都会被单独格式化,每个值都需要一个对应的转换说明符
有多个占位符的字符串中
使用元组传入多个格式化值,若元组作为转换表达式的一部分存在,必须用括号括起来
例子
>>> print('我叫%s,我今年%d岁了,我是%s孩'%('婷',25,'女'))
我叫婷,我今年25岁了,我是女孩
注意事项
简单转换
只需要写出转换类型
字段宽度和精度
字段宽度
转换后的值所保留的最小字符个数
精度
数字转换结果中应该包含的小数位数或字符串转换后的值所能包含的最大字符个数
例
>>> print('pi的值为%10f'%3.141593)#字段宽度为10
pi的值为 3.141593
>>> print('pi的值为%10.2f'%3.141593)#字段宽度为10,保留2位小数
pi的值为 3.14
>>> print('pi的值为%.2f'%3.141593)#输出没有字段宽度参数
pi的值为3.14
>>> print('字符串精度获取:%.5s'%("hello world"))
字符串精度获取:hello
可使用*作为字段宽度和精度,数值从元组中读出
>>> print('从元组中获取字符串的精度:%*.*s'%(10,5,"hello world"))
从元组中获取字符串的精度: hello
符号、对齐和0填充
在字段宽度和精度之前可放置一个“标表”,可以是零、加号、减号、空格
>>> print('pi的值为:%010.2f'%3.141593)
pi的值为:0000003.14
若宽度前面的0更改为其他数字会认作宽度值,而不是填充值。
>>> print('pi的值为:%20.2f'%3.141593)
pi的值为: 3.14
在精度前面加0对精度没有任何影响
>>> print('pi的值为:%010.02f'%3.141593)
pi的值为:0000003.14
在精度前面加大于0的数字,则作为小数的实际位数输出
>>> print('pi的值为:%010.12f'%3.141593)
pi的值为:3.141593000000
在精度前面加小于0的数字,则报异常
>>> print('pi的值为:%010.-12f'%3.141593)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: unsupported format character '-' (0x2d) at index 11
零用来左对齐数值
>>> print('pi的值为:%10.2f'%3.141593)
pi的值为: 3.14
>>> print('pi的值为:%-10.2f'%3.141593)
pi的值为:3.14
空白(“ ”)在正数前面加上空格
>>> print(('%5d'% 10)+'\n'+('%5d'%-10))
10
-10
+表示无论正数还是负数均表现出符号
>>> print(('宽度前加加号:%+5d'%10)+'\n'+('宽度前面加加号:%+5d'%-10))
宽度前加加号: +10
宽度前面加加号: -10
字符串方法
字符串基本方法
字符串方法作用分类
字符串连接
join()
- 作用
将序列中的元素以指定字符连接成新的字符串
- 语法
str.join(sequence)
- 参数含义:str代表指定检索的字符串
sequence代表要连接的元素序列
返回结果为指定字符串连接序列中元素后生成的新字符串
- 例
>>> f=[1,2,3,4]
>>> m='-'
>>> m.join(f)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected str instance, int found
列表中的元素不是字符串
>>> f.join(m)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'join'
检索目标不是字符串
>>> f=['1','2','3','4']
>>> m.join(f)
'1-2-3-4'
>>> f.join(m)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'join'
列表没有join方法
- 注意
进行join操作调用和被调用的对象必须都是字符串,任意一个不是字符串都会报错
- 源码
- 自己的源码
字符串搜索
find()
- 作用
用于检测字符串是否包含子字符串str;若指定beg和end范围,就检查是否包含在 指定 范围内,若包含子字符串,就返回开始的索引值,否则返回-1
- 语法
str.find(substr,beg=0,end=len(string))
- 参数含义:
str代表指定的字符串
substr代表指定的子字符串
beg表示开始索引,默认为0
end表示结束索引,默认为字符串的长度
返回结果为字符串所在未知的最左端索引,若没有,则返回-1
- 例
>>> a="let us go"
>>> a.find('let')
0
>>> a.find('go')
7
>>> a.find('ou')
-1
>>> a.find('go',5)
7
>>> a.find('go',8)
-1
>>> a.find('go',2,4)
-1
>>> a.find('go',0,8)
-1
>>> a.find('go',0,9)
7
- 注意:字符串的find方法返回的不是布尔值。返回0,则为在索引0处找到了子字符串
- 源码
- 自己的源码
rfind()
- 作用
可在指定字符串范围内查找子字符串出现的位置
- 语法
str.rfing(substr,beg=0,end=len(string))
- 参数含义
str代表指定的字符串
substr代表指定的子字符串
beg表示开始索引,默认为0
end表示结束索引,默认为字符串的长度
返回结果为最后出现的子字符串的第一个字母的标号,若字符串中没有字符串则返回-1,也 就是说从右边算起的第一次出现的substr的首字母标号
- 例
>>> print(s.rfind('cd',1,8))
2
>>> print(s.rfind('cd',1))
2
>>> print(s.rfind('cd',1,3))
-1
- 注意
- 源码
- 自己的源码
index()
- 作用
在指定字符串范围内查找字符串出现的位置,找不到则返回错误
- 语法
str.indec(substr,beg=0,end=len(string))
- 参数说明
str代表指定的字符串
substr代表指定的子字符串
beg表示开始索引,默认为0
end表示结束索引,默认为字符串的长度
返回结果为字符串所在未知的最左端索引,若没有,则返回错误
- 例
>>> s='abcd123'
>>> print(s.index('cd',1))
2
>>> print(s.index('cd',1,3))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
>>> print(s.index('cd',1,5))
2
>>> print(s.index('cd',1,8))
2
>>> print(s.index(1,8))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: must be str, not int
- 注意
- 源码
- 自己的源码
rindex()
- 作用
可在右侧指定字符串范围内查找字符串出现的位置,找不到则报错
- 语法
str.rindex(substr,beg=0,end=len(string))
- 参数含义
str代表指定的字符串
substr代表指定的子字符串
beg表示开始索引,默认为0
end表示结束索引,默认为字符串的长度
返回结果为字符串所在未知的最左端索引,若没有,则返回错误
- 例
>>> print(s.rindex('cd',1))
2
>>> print(s.rindex('cd',1,8))
2
>>> print(s.rindex('cd',1,3))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
- 注意
- 源码
- 自己的源码
字符串的替换
replace()
- 作用
把字符串中的old(老字符串)替换成new(新的字符串),若指定第三个参数max,替换次 数不能超过max次
- 语法
str.replace(old,new[,max])
- 参数含义
str代表指定检索的字符串
old代表将被替换的子字符串
new代表新字符串,用于替换old子字符串
max代表可选字符串,替换次数不超过max次
- 例
>>> s="abcaadaeaghia"
>>> s.replace("a","v")
'vbcvvdvevghiv'
>>> s="abcaadaeaghia"
>>> s.replace("a","v",2)
'vbcvadaeaghia'
>>> s="abcaadaeaghia"
>>> s.replace("a","v",3)
'vbcvvdaeaghia'
>>> s="just do it , do it now"
>>> s.replace("do","just do")
'just just do it , just do it now'
>>> s.replace("o","just")
'just djust it , djust it njustw'
>>> s.replace("o","just",1)
'just djust it , do it now'
- 注意
- new替换old之后生成新的字符串,但不会改变或影响str原始的字符串
- 不指定第三个参数时,所有匹配的字符都替换;指定第三个参数时,替换从左往右进行,替换次数不超过指定的次数
- 源码
- 自己的源码
expandtabs()
- 作用
将tab替换为指定的空格数量
- 语法
str.expandtabs([tablesize])
- 参数含义
str代表指定的字符串
tablesi代表将tab替换的空格数量
- 例
>>> s='q 2 3 4 b'
>>> print(s.expandtabs(1))
q 2 3 4 b
>>> print(s.expandtabs(2))
q 2 3 4 b
>>> print(s.expandtabs(4))
q 2 3 4 b
- 注意
- 源码
- 自己的源码
translate()
- 作用:根据参数table给出的表(包含256个字符)转换字符串的字符,将要过滤掉的字符放到del参数中
- 语法
str.translate(table[,deletechars])
- 参数含义:
str代表指定检索的字符串
table代表翻译表,翻译表通过maketrans方法转换而来
deletechars代表字符串中要过滤的字符列表
返回结果为翻译后的字符串
- 例
>>> intable="abcdefgiow"
>>> outable="1234567890"
>>> table=str.maketrans(intable,outable)
>>> s="just do it now"
>>> s.translate(table)
'just 49 8t n90'
- 注意
translate方法只处理单个字符
- 源码
- 自己的源码
字符串分割
split()
- 作用
通过指定分隔符对字符进行切片
- 语法
str.split(st="",num=string.count(str))
- 参数含义:
str代表指定检索的字符串
st代表分隔符,默认为空格
num代表分割次数,若参数num有指定值,就分割num个字符串
返回结果为分割后的字符串列表
- 例
>>> s="do it now"
>>> s.split()
['do', 'it', 'now']
>>> s.split("t")
['do i', ' now']
>>> s.split("o",1)
['d', ' it now']
>>> s.split("o",2)
['d', ' it n', 'w']
>>> s.split("o")
['d', ' it n', 'w']
- 注意
- 若不指定分割符,则把所有空格作为分隔符
- 若指定分割次数,则从左往右检索和分隔符匹配的字符,分割次数不超过指定次数
- 若不指定分割次数,则所有匹配的分割符均会被分割
- 源码
- 自己的源码
splitlines()
- 作用
按照分割符分割字符串
- 语法
str.splitlines([keepends])
- 参数含义
str代表指定检索的字符串
keepends是一个bool值,若为真,则每行后面会保留行分隔符
- 例
>>> print (s.splitlines(True))
['1\n', '2\n']
>>> print (s.splitlines(False))
['1', '2']
- 注意
- 源码
- 自己的源码
strip()
- 作用
用于移除字符串头尾指定的字符,默认为空格,不改变原字符串
- 语法
str.strip([chars])
- 参数含义:
str代表指定的检索字符串
chars代表移除字符串头尾指定的字符
不带参数的strip()函数,表示把字符串中前后所有的空白字符去掉,包含\n、 \t、\r、、' '等不可见字符
带参数的strip()函数表示把字符串前后指定的chars去掉
返回结果为移除字符串头尾指定的字符后生成的新的字符串
- 例
>>> s=" just do it "
>>> s.strip()
'just do it'
>>> s="--just do it--"
>>> s.strip("-")
'just do it'
>>> s="--just-- do-- it--"
>>> s.strip("-")
'just-- do-- it'
- 注意
strip只去除字符串头尾匹配的字符,中间的不会去除
- 源码
- 自己的源码
lstrip()
- 作用
将字符串的左边空格\t等空白内容去除
- 语法
str.lstrip([chars])
- 参数含义
str代表指定的检索字符串
chars代表移除字符串左边开头指定的字符
不带参数的lstrip()函数,表示把字符串中开头所有的空白字符去掉,包含\n、\t、\r、、' '等不可见字符
带参数的lstrip()函数表示把字符串左边开头最后指定的chars去掉
返回结果为移除字符串尾指定的字符后生成的新的字符串
- 例
>>> s="*just do it*"
>>> s.lstrip("*")
'just do it*'
- 注意
- 源码
- 自己的源码
rstrip()
- 作用
将字符串的右边空格\t等空白内容去除
- 语法
str.rstrip([chars])
- 参数含义
str代表指定的检索字符串
chars代表移除字符串右边结尾指定的字符
不带参数的rstrip()函数,表示把字符串中结尾所有的空白字符去掉,包含\n、\t、\r、、' '等不可见字符
带参数的lstrip()函数表示把字符串右边最后指定的chars去掉
返回结果为移除字符串尾指定的字符后生成的新的字符串
- 例
>>> s.rstrip("*")
'*just do it'
- 源码
- 自己的源码
大小写互换
str.lower()、str.upper()、str.swapcase()、str.capitalize()、str.capwords()、str.title()
lower()
- 作用
用于将字符串中所有大写转换为小写
- 语法
str.lower()
- 参数含义:
str代表指定检索的字符串
该方法不需要参数
返回结果为字符串中所有大写字符转换为小写后生成的字符串
- 例
>>> s="JUST DO IT"
>>> s.lower()
'just do it'
>>> s.find("It")
-1
>>> s.lower().find("It")
-1
不区分大小写
>>> s.lower().find("It".lower())
8
- 注意
lower只针对英文字符串有效
- 源码
- 自己的源码
upper()
- 作用
用于将字符串中的小写字母转换成大写字母
- 语法
str.upper()
- 参数含义:
str代表指定检索的字符串
该方法不需要参数
返回结果为小写字母转换为大写字母的字符串
- 例
>>> s="just do it"
>>> s.upper()
'JUST DO IT'
>>> s.find("It")
-1
>>> s.upper().find("It")
-1
不区分大小写
>>> s.upper().find("It".upper())
8
- 注意
upper只针对英文字符串有效
- 源码
- 自己的源码
swapcase()
- 作用
用于对字符串的大小写字母进行转换,大写转换为小写,小写转换为大写
- 语法
str.swapcase()
- 参数含义:
str代表指定检索的字符串
该方法不需要参数
返回结果为大小写字母转换后生成的字符串
- 例
>>> s.swapcase()
'JUST dO iT'
- 注意:swapcase只针对英文字符串有效
- 源码
- 自己的源码
capitalize()
- 作用
将字符串的首个字母转换为大写
- 语法
str.capitalize()
- 参数含义
str指定检索的字符串
- 例
>>> s="just do it*"
>>> s.capitalize()
'Just do it*'
- 注意
- 源码
- 自己的源码
capwords()
- 作用
把字符串中的每个单词的首字母转换为大写
- 语法
string.capwords(str)
- 参数含义
string模块
str指定检索的字符串
- 例
>>> import string
>>> string.capwords(str)
'Just Do It'
- 注意
这是模块中的方法,是先用split()函数把str分开,然后用capitalize()把首字母变成 大写,然后用join()合并到一起
- 源码
- 自己的源码
title()
- 作用
将字符串的每个单词首字母大写
- 语法
str.title()
- 参数含义
str指定检索的字符串
- 例
>>> s="just do it"
>>> s.title()
'Just Do It'
- 注意
- 源码
- 自己的源码
字符串对齐
ljust()
- 作用
输出width个字符,str左对齐,不足的部分用fillchar填充,默认为空格
- 语法
str.ljust(width,[fillchar])
- 参数含义
str代表指定检索的字符串
width表示str的宽度,输出的个数
fillchar表示指定的填充字符
- 例
>>> s='abcd123'
>>> print(s.ljust(10,'#'))
abcd123###
>>> print(s.ljust(10))
abcd123
>>> len(s.ljust(10))
10
- 注意
若没有空余的位置,则没有填充字符
- 源码
- 自己的源码
rjust()
- 作用
输出width个字符,str右对齐,不足的部分用fillchar填充,默认为空格
- 语法
str.rjust(width,[fillchar])
- 参数含义
str代表指定检索的字符串
width表示str的宽度,输出的个数
fillchar表示指定的填充字符
- 例
>>> print(s.rjust(10))
abcd123
>>> print(s.rjust(10,'#'))
###abcd123
- 注意
若没有空余的位置,则没有填充字符
- 源码
- 自己的源码
center()
- 作用
字符串中间对齐
- 语法
str.center(width,[fillchar])
- 参数含义
str代表指定检索的字符串
width表示str的宽度,输出的个数
fillchar表示指定的填充字符
- 例
>>> print(s.center(10,'#'))
#abcd123##
>>> print(s.center(10))
abcd123
- 注意
- 源码
- 自己的源码
zifll()
- 作用
把字符串变成width的长,并且右对齐,不足部分用0补足
- 语法
str.zfill(width)
- 参数含义
str代表指定检索的字符串
width表示str的宽度,输出的个数
- 例
>>> print(s.zfill(10))
000abcd123
- 注意
- 源码
- 自己的源码
字符串的测试
startswith()
- 作用
判断字符串是否以某个字符串为开头
- 语法
str.startswith(s)
- 参数含义
str代表指定检索的字符串
s代表判断的字符串,是否以此为字符串为开头
- 例
>>> name="roadgloaryad"
>>> if name.startswith("road"):
... print("name的开头字符串为:",'road')
...
name的开头字符串为: road
- 注意
- 源码
- 自己的源码
endwith()
- 作用
判断字符串是否以某个字符串为结尾
- 语法:str.endwith(s)
- 参数含义
str代表指定检索的字符串
s代表判断的字符串,是否以此为字符串为结尾
- 例
>>> name="roadgloaryad"
>>> if name.endswith("yad"):
... print("name的结尾字符串为:",'yad')
...
name的结尾字符串为: yad
- 注意
- 源码
- 自己的源码
in
- 作用
判断字符串中是否有某个字符串
- 语法
s in str
- 参数含义
str代表指定检索的字符串
s代表判断的字符串,是否包含在str中
- 例
>>> name="roadgloaryad"
>>> if 'glo' in name:
... print("glo"+"包含在name中")
...
glo包含在name中
- 注意
- 源码
- 自己的源码
isalpha()
- 作用
检测字符串是否只含有字母,
若字符串至少有一个字符并且所有的字符都是字母则返回True,否则返回False
- 语法
str.isalpha()
- 参数含义
无参
- 例
>>> name="roadgloaryad"
>>> name.isalpha()
True
>>> name="roadgloaryad....1w3"
>>> name.isalpha()
False
>>> name=""
>>> name.isalpha()
False
- 注意
- 源码
- 自己的源码
isalnum()
- 作用
检测字符串是否只由字母和数字组成
若字符串中至少有一个字符,切所有字符均由字母和数字组成,则返回True,否则返回Flase
- 语法
str.isalnum()
- 参数含义
无参
- 例
>>> name="roadgloarya781w3"
>>> name.isalnum()
True
>>> name="roadgloarya781w././3"
>>> name.isalnum()
False
>>> name="roadgloarya"
>>> name.isalnum()
True
>>> name="12345"
>>> name.isalnum()
True
- 注意
- 源码
- 自己的源码
isdigit()
- 作用
检测字符串中的字符是否都是数字组成
若字符串中至少有一个字符,切所有字符均由数字组成,则返回True,否则返回Flase
- 语法
str.isdigit()
- 参数含义
无参
- 例
>>> name="12345"
>>> name.isdigit()
True
>>> name="roadgloarya"
>>> name.isdigit()
False
>>> name="12345dgfgdads"
>>> name.isdigit()
False
- 注意
- 源码
- 自己的源码
isspace()
- 作用
检测字符串是否只由空格组成
若字符串中至少有一个字符,切所有字符均由空格组成,则返回True,否则返回Flase
- 语法
str.isspace()
- 参数含义
无参
- 例
>>> name="roadgloarya"
>>> name.isspace()
False
>>> name="12345"
>>> name.isspace()
False
>>> name=" "
>>> name.isspace()
True
- 注意
- 源码
- 自己的源码
islower()
- 作用
检测字符串中所有字符均由小写字母组成
若字符串中至少有一个字符,切所有字符均由小写字母组成,则返回True,否则返回Flase
- 语法
str.islower()
- 参数含义
无参
- 例
>>> name="avbff"
>>> name.islower()
True
>>> name="avbffFFF"
>>> name.islower()
False
- 注意
- 源码
- 自己的源码
isupper()
- 作用
检测字符串中所有字符是否均由大写字母组成
若字符串中至少有一个字符,切所有字符均由大写字母组成,则返回True,否则返回Flase
- 语法
str.isupper()
- 参数含义
无参
- 例
>>> name="ASDFD"
>>> name.isupper()
True
>>> name="avbffFFF"
>>> name.isupper()
False
- 注意
- 源码
- 自己的源码
istitle()
- 作用
检测字符串中所有单词拼写首字母是否为大写,其他为小写
若字符串中所有的单词首字母拼写是大写,其他的字母为小写则返回True,否则返回Flase
- 语法
str.istitle()
- 参数含义
无参
- 例
>>> name="Just Do It Now"
>>> name.istitle()
True
>>> name="Just Do it Now"
>>> name.istitle()
False
- 注意
- 源码
- 自己的源码
字符串的映射
maketrans()
- 作用
用于创建字符映射的转换表,对于接受两个参数的最简单的调用形式,第一个参数时字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标
返回字符串转换后生成的新的字符串
- 语法
str.maketrans(from,to)
str.maketrans(intab,outtab)
- 参数含义
from、intab:字符串中要替代的字符组成的字符串
to、outtab:相应的映射字符的字符串
- 例
from string import maketrans # 必须调用 maketrans 函数。 intab = "aeiou" outtab = "12345" trantab = maketrans(intab, outtab) str = "this is string example....wow!!!"; print str.translate(trantab);
t=bytes.maketrans(b'abc',b'ABC')
print(b'abc123'.translate(t,b"123"))
- 注意
两个字符串的长度必须相同,为一一对应的关系
- 源码
- 自己的源码
- str.translate(table[,deletechars])
- 使用上面的函数产生的翻译表,把str进行翻译,并把deletechars中有的字符删掉。若str为unicode字符串,则不支持deletechars参数,所以需要使用字节字符串
字符串的编解码
编码
encode()
- 作用
编码
-
- 语法
str.encode([encoding,[errors]])
-
- 参数含义
str指定检索的字符串
encoding编码方式
errors默认值为“strict”,意思为UnicodeError。还可以为ignore、replace、xmlcharrefreplace、backslashreplace和所有通过codecs.register_error注册的值
-
- 例
>>> s="this is string example........ok?"
>>> s=s.encode('utf-8','strict')
>>> print("Encoded String:",s)
Encoded String: b'this is string example........ok?'
>>> print("Decoded String:",s.decode('utf-8','strict'))
Decoded String: this is string example........ok?
-
- 注意
- 源码
解码
decode()
- 作用
解码
- 语法
str.decode([decoding,[errors]])
- 参数含义
str指定检索的字符串
decoding解码方式
errors默认值为“strict”,意思为UnicodeError。还可以为ignore、replace、xmlcharrefreplace、backslashreplace和所有通过codecs.register_error注册的值
- 例
>>> s="this is string example........ok?"
>>> s=s.encode('utf-8','strict')
>>> print("Encoded String:",s)
Encoded String: b'this is string example........ok?'
>>> print("Decoded String:",s.decode('utf-8','strict'))
Decoded String: this is string example........ok?
- 注意
- 源码
base64
- 作用
base64是网络上常见的用于传输8Bit字节码的编码方式之一,base64就是一种基于64个可打印字符来表示二进制数据的方法
>>> import base64
>>> encodestr=base64.b64encode(b'just do it')
>>> print(encodestr)
b'anVzdCBkbyBpdA=='
>>> print(base64.b64decode(encodestr))
b'just do it'
md5
- MD5消息摘要算法,一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
类型判断 isinstance()
- 作用
该方法表示判断对象object是否是class-or-type-or-tuple的实例或者是子类
class-or-type-or-tuple表示可以是class类型,type类型,也可以是很多类型组成的tuple
- 例
>>> s2=b"just do it"
>>> print(isinstance(s2,bytes))
True
>>> list1=[1,2,3]
>>> print(isinstance(list1,list))
True
>>> num=12
>>> print(isinstance(num,int))
True
>>> print(isinstance(num,float))
False
>>> print(isinstance(num,(float,int)))
True
>>> class A(object):
... pass
...
>>> print(isinstance(A,object))
True
ASCII码的转换
ord()
- 作用
字符转换为ASCII的值
-
- 例
>>> print(ord("a"))
97
>>> print(ord("z"))
122
>>> print(ord("A"))
65
>>> print(ord("Z"))
90
chr()
- 作用
将ascii值转换为字符
-
- 例
>>> print(chr(180))
´
>>> print(chr(78))
N
>>> print(chr(2000))
ߐ
>>> print(chr(20000))
丠
字符串出现次数统计函数
count()
- 作用
用于在字符串范围内进行出现次数的统计
-
- 语法
str.count(substr,[start,[end]])
-
- 函数参数
str代表指定检索的字符串
substr代表统计次数的字符串
start统计次数开始的位置
end统计次数结束的位子
-
- 例
>>> s="i am a girl"
>>> print(s.count("a"))
2
-
- 注意
- 源码
- 自己的源码
字符串按操作方法分类
增
- 不允许增加新的元素
删
- del
- 只能删除整体,不能删除字符串中的单个元素
改
- str.join()
- str.replace(old,new[,max])
- str.expandtabs()
- str.translate()
- str.split()
- str.splitlines()
- str.strip()
- str.lstrip()
- str.rstrip()
- str.lower()
- str.upper()
- str.swapcase()
- str.capitalize()
- str.capwords()
- str.title()
- str.ljust()
- str.center()
- str.zifll()
查
- str.find()
- str.rfind()
- str.index()
- str.rindex()
字符串测试
- startwith()
- endwith()
- in
- isalpha()
- isalnum()
- isdigit()
- isspace()
- islower()
- isupper()
- istitle()