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,则保留换行符
         
         
         
         
         
         

 

posted @ 2017-08-18 14:07  eudaemonia  阅读(175)  评论(0编辑  收藏  举报