Python学习笔记 —— 字符串及常用函数

来源:互联网 发布:改进的区域增长算法 编辑:程序博客网 时间:2024/06/06 03:18

Python中没有单字符类型,所以单个字符也是作为一个字符串来使用的

Python字符串要求掌握点

引号、双引号、三引号区别点及使用
转义字符
字符串运算符
字符串格式化
Unicode字符串
常用函数


引号、双引号、三引号区别点及使用

  • 引号与双引号无区别,可直接使用
  • 与三引号区别为,单双引号只能作用于一行,而三引号可以作用于多行,同时还可以作为注释来使用。

转义字符

使用到特殊字符,不能当作普通字符来处理,需要进行转义【查阅】

\(在行尾)      :续行符

表示反斜杠后面的字符:

\\      :反斜杠符号\'      :单引号\"      :双引号

其他意义:

\a      :响铃\b      :退格\e      :转义\000    :空\n      :换行\v      :纵向制表符\t      :横向制表符\r      :回车\f      :换页\oyy    :八进制数,yy代表字符,例:\o12代表换行\xyy    :十六进制数,yy代表字符,例:\x0a代表换行\other  :其他的字符以普通格式输出

字符串运算符

+       :字符串连接*       :重复输出字符串[]      :获取串中索引位置字符  [:]     :截取字符串部分in      :判断字符串中是否包含给定的字符not in      :不包含给定字符返回YESr/R     :原始字符串,所有字符串都是直接按字面意思使用,无特殊或转义字符  如:print r’\n’ 输出:\n而不是换行%       :格式字符串【见字符串格式化】

字符串格式化

在字符串的输出中我们可能会用到格式化字符串,主要是将其他一些格式以字符串的形式输出

如:

print 'Hello %s you are number %d '% ('Nick',2)#>>> hello Nick you are number 2

格式化符号:

%c      :格式化字符%s      :格式化字符串%u      :格式化无符号整型%o      :格式化八进制数%x或%X   :格式化十六进制数%f      :格式化浮点%e或%E   :科学计数法格式化浮点数%g或%G   :%f和%e的简写%p      :变量地址【指针地址】
  • 辅助操作符指令 需要放到格式化符号中间

格式如下:

#如:%u '%'+辅助操作指令+'u'
*       :定义宽度或者小数点精度 -> 为一具体数字如: %5d   以五位补充,无数据用空格补充-       :左对齐        ->%-5d ,左对齐 +       :正数面前显示(+)->%+5d,正数面前显示‘+’号,负数显示‘-’号【空格】 :正数面前显示空格  ->% 5d,正数前面显示空格,负数显示'-'#       :八进制及十六进制标识,八进制显示'0',十六进制显示‘0x’ ->%#o  为显示八进制,并且前面标注八进制符号'0'0       :显示的数字前面填充'0'【默认填充空格】->%5d,高位不足,以'0'补充%       :'%%'输出一个单一的'%'m.nm显示的最小总宽度,n为小数点后保留位 -> %3.5f ,小数后面保留5位,整体最小宽度为3

Unicode字符串

Python中定义Unicode字符串只需要在串前添加一个u即可

如:

 u'Hello word'

引号前的u表示这里创建的是一个Unicode字符串。如果想加入一个特殊字符,需要使用PythonUnicode-Escape编码
如:

u'hello\u0020world'  #\u0020为空格编码u'hello world'

常用函数

len(string)         :计算字符串长度string.count(str)   :计算str在string中出现的次数

无参函数:

string.capitalize()     :把字符串第一个字符大写string.isalnum()        :判断字符串是否只有字母数字string.isalpha()        :判断字符串是否只有字母string.isdigit()        :判断是否只含有数字string.islower()        :判断是否字符串中全部为小写string.isupper()        :判断是否字符串中全部为大写string.isspace()        :是否只含有空格string.title()          :返回标题化字符 【标题样式为:每个单词的第一个字符都是大写】string.istitle()        :是否为标题样式  string.lower()          :将所有字符串转为小写string.upper()          :将所有字符串转为大写string.swapcase()       :翻转大小写【大写变小写,小写变大写】string.isnumeric()      :判断是否只包含数字字符 【只存在Unicode对象】string.isdecimal()      :判断字符串是否只有十进制数字  【只存在Unicode对象】  字符串前有u标志

一参数

string.center(width)        :返回一个原字符串居中,用空格填充至长度width的新字符串string.zfill(width)         :返回长度为width的字符串,原字符串string右对齐,前面填充0string.expandtabs(tabsize=8):把字符串中的tab符号转为需要空格数量,tab符号默认的空格数为8  参数代表转为几个空格数string.join(seq)            :以sting作为分隔符,将seq中所有的元素合并为一个新的字符串 【序列一般为元组或列表】string.ljust(width)         :返回一个原字符串左对齐,并使用空格填充至长度width的新字符串string.rjust(width)         :返回一个原字符串,右对齐,左边补空格至width宽度max(str)                    :返回字符串中最大的字母,ASCII码为判断标准min(str)                    :返回字符串中最小的字母string.partition(str)       :将字符串分为一个三元素的元组:(第一个str之前 第一个str 第一个str之后)string.rpartition(str)      :类似于partition从右侧开始查找,第一个strstring.lstrip([str])        :裁掉string左边的空格,若有str则直接切去左边strstring.rstrip([str])        :裁掉string右边的空格,,若有str则直接切去右边strstring.strip([str])         :执行lstrip()和rstrip()

多参数

1 . string.count(str,beg=0,end=len(string))         :返回str在string里面出现的次数,如果beg,end指定则返回指定范围内str出现的次数2 . string.encode(encoding=‘UTF-8’,errors=’strict’) :指定编码格式,出错则报出错误,除非errors指定为ignore或replacestring.decode(encoding=‘UTF-8’,errors=‘strict’) :指定解码格式
注:errors—设置不同错误的处理方案。默认'strict',意为编码错误引起一个UnicodeError。其他可设定值有:'ignore','replace','xmlcharrefreplace','backslashreplace'以及通过codecs.register_error()注册的任何值。
3 . string.endswith(obj,beg=0,end=len(string))  :检查字符串是否以obj结束,指定范围则在范围内判断,是返回True,否则返回False4 . string.startwith(obj,beg=0,end=len(string)) :检查串是否以obj开头,其他参上5 . string.find(str,beg=0,end=len(string))      :检测str是否包含在string中,如果指定范围,如果是则返回原字符串的索引值,否则返回-16 . string.rfind(str,beg=0,end=len(string))     :与find一致,从右侧开始7 . string.index(str,beg=0,end=len(string))     :与find方法一致,不过如果不在string中则报一个异常8 . string.maketrans(innate,outtab)             :字符映射表,第一个为需要转换的字符,第二个表示转换的目标,都是以字符进行映射的。

例:

#!/usr/bin/python# -*- coding: UTF-8 -*-from string import maketrans    #必须调用maketrans函数str = 'This is a very good test'old = 'aeiou'new = '12345'trantab = maketrans(old,new)  #old与new的长度需要保持一致print str.translate(trantab)#>>> Th3s 3s 1 v2ry g44d t2st   // 由此可以做些简单的加密算法设置
9 . string.translate(str,del=‘’)            :根据str给出的表,包含(256个字符)转换string的字符,要删掉的字符放到del参数中

例:

#!/usr/bin/python# -*- coding: UTF-8 -*-from string import maketransold = 'aeiou'new = '12345'trantab = maketrans(old,new)str = 'this is a test'print str.translate(trantab,'th') #替换同时再将所有t h 删除掉
10 . string.replace(str1,str2,num=string.count(str1))   :把string中的str1替换成str2,如果num指定,则替换不超过num次

例:

str = 'this is a test'print strprint str.replace('is','was')print str.replace('is','was',1)#输出:#>>> this is a test#>>> thwas was a test#>>> thwas is a test
11 . string.split(str=‘’,num=string.count(str))     :以str为分隔符切片string,如果numb有指定值,则仅分隔num个字符串

例:

>>> str = 'this is a is goois'>>> str.split(' ')['this', 'is', 'a', 'is', 'goois']>>> str.split(' ',3)['this', 'is', 'a', 'is goois']
12 . string.splitlines(num=string.count(‘\n’))      :按行分隔,返回一个包含行作为元素的列表,如果num指定不为0则,如果

例:

>>> str = '''this is a good test... do you know this?... anyone know this'''>>> str.splitlines()['this is a good test', 'do you know this?', 'anyone know this']>>> str.splitlines(2)['this is a good test\n', 'do you know this?\n', 'anyone know this']>>> str.splitlines(0)['this is a good test', 'do you know this?', 'anyone know this']#注:查看方法说明为,S.splitlines(keepends=False)返回S中的行列表,以行边界为分隔,行分隔并不包括换行符,除非在括号中给定一个非空非0值才会显示分隔符。所以传入一个非0值效果都是一样的。
0 0