Python字符串
1.字符串是不可变的
2.字符串用'xx',或"xx"均可,三引号'''x'''或"""x"""中的内容可以包含回车或tab键,里面的内容即所见即所得
3.r'\n' 代表原始字符,里面写成什么样就是什么样,不需要转义
4.u'xxx'代表unicode编码
5.适用对序列的操作,即索引、分配、乘法、判断成员资格、求长度、取最大值和最小值
标准库里的关于字符串的主要模块:string库和re库
编码方式:
ASCII | 一个英文字符按8位二进制(一个字节)方式进行存储,能标识223个字符,默认按ascii编码,类StringType | "hello word" #ascii string |
str() chr() 只能处理ascii编码字符串,unicode字符串传入后会被先转换成ascii字符串,可能会产生乱码报异常等现象 |
Unicode | 用多字节存储,能标识90000个字符,在字符串前面加u前缀的方式声明unicode字符串,支持utf-8的编码方式,类UnicodeType | u"hello word" #unicode string |
unicode() unichar() |
UTF-8 |
处理英文时用ASCII编码 处理其他语言时用unicode编码 |
有的时候字符串会带u,例如u'aaaa' ,如果让显示出的字符串不带u,则用 unicode.encode(变量名) 来把带u的字符串转换成不带u的
格式化:转换说明符%s % 右操作数(右操作数可以是任意类型,包括元祖)
转换说明符:
d,i | 带符号的十进制整数 |
%d,%i |
f,F | 十进制浮点数 | %f,%F |
s | str转换任意python对象,字符串 | %s |
r | repr转换任意python对象,字符串 | %r |
e,E | 科学计数法表示的浮点数 | %e,%E |
x,X | 不带符号的十六进制 | %x,%X |
o | 不带符号的八进制 | %o |
u | 不带符号的十进制 | %u |
# | 带符号的八进制/十六进制 | %#x |
字符宽度 -,+,0 |
-左对齐 +值前加正负号 0位数不够用0填充 |
%-10.2f - ‘字段宽10,左对齐,精度2’ %010.2f - ‘字段宽10,位数不够0填充,精度2’ |
精度 |
实数,表示小数点后的位数 字符串,表示最大字段宽度 |
%10.2f - ‘字段宽10,右对齐,精度2’ |
转义字符
\在行尾时 | 续行符 |
\\ | 反斜杠符号 |
\' | 单引号 |
\" | 双引号 |
\b | 退格 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\other | 其他 |
内建函数:继承自string模块
功能 | 方法 | 原来的字符串 | 返回 | 备注 |
首字母大写 | "xx".capitalize() | "abc" | "Abc" | |
"xx".title() | ||||
"xx".capwords() | ||||
某字符串出现的次数 | "xx".count("x",beg=0,end=len("xx")) | "xx" | 2 | beg和end指定范围,不写则默认全部范围 |
指定解码格式 | "xx".decode(encoding='UTF-8) | "xx" | "xx" | |
指定编码格式 | "xx".encode(encoding='UTF-8) | "xx" | "xx" | |
是否以某字符串结束 | "xx".endswith("x",beg=0,end=len("xx")) | "xx" | True/False | beg和end指定范围,不写则默认全部范围 |
把字符串中的tab符号转换为空格 | "xx".expandtabs(tabsize=8) | "xx" | "x" | tab符号默认的空格数是8 |
是否包含某字符串 | "xx".find("x",beg=0,end=len("xx")) | "xx" | -1 | 包含则返回索引值,否则返回-1 |
"xx".rfind("x",beg=0,end=len("xx")) | 从右面开始查找 | |||
格式化字符串 | "xx".format() | |||
是否包含某字符串返回索引 | "xx".index("x",beg=0,end=len("xx")) | 找不到则报错 | ||
"xx".rindex("x",beg=0,end=len("xx")) | 从右侧开始查找 | |||
是否都是字母或都是数字 | "xx".isalnum() | True/False | ||
是否都是字母 | "xx".isalpha() | True/False | ||
是否都是数字 | "xx".isdecimal()/"xx".isdigit()/"xx".isnumeric() | True/False | ||
是否都是小写 | "xx".islower() | |||
是否都是空格 | "xx".isspace() | |||
是否都是首字母大写 | "xx".istitle() | |||
是否都是大写 | "xx".isupper() | |||
以某分隔符串联序列的所有元素 | "xx".join(seq) | "+".join(['aa','b','d']) | 'aa+b+d' | 返回字符串 |
以某分隔符拆分序列的所有元素 | "xx".split("x") | "aa,b,d".split(',') | ['aa','b','d'] | 返回序列 |
转换为全小写 | "xx".lower() | |||
转换为全大写 | "xx".upper() | |||
去掉空格 | "xx".lstrip()左/"xx".rstrip()右/"xx".strip()左右 | |||
返回最大值 | max("xx") | |||
返回最小值 | min("xx") | |||
替换 | "xx".replace("x","y",num=2) | x替换成y,如果num指定,则不超过num次 | ||
返回行列表 | "xx".splitlines(keepends) | 按照行('\r,'\r\n','\n')分隔,返回一个包含各行作为元素的列表,如果参数keepends为False,不包含换行符,如果为True,则保留换行符 | ||