您的位置 » 首页 » 编程开发 » Python学习:Python笔记 字符串处理函数整理

Python学习:Python笔记 字符串处理函数整理

发表于4年前 | 作者: seay | 分类: 编程开发 | 孵化于:2012年12月25日 | 文章热度:5,088 次 全屏阅读

显示不全请点击全屏阅读

 

转载请注明出处:http://blog.csdn.net/wklken/archive/2011/04/10/6312870.aspx

 

Python笔记——字符串处理

 

1.定义… 1

A.字符串… 1

B.原始字符串(rawstring) 1

C.转义符… 2

D.特性… 2

2.基本操作:… 2

A.base op. 2

B.字符串转换:… 2

C. 修改字符串:… 3

D. 索引和分片… 3

3.字符串内建函数… 4

4.格式化输出字符串… 5

5.字符串相关模块:… 6

6.其他… 6

 

1.定义

A.字符串

Python字符串:一个有序的字符集合,用来存储和表现基于文本的信息

 

用于表示和存储文本,是单个字符的序列, 符合序列操作

python中字符串是不可变的,一旦声明,不能改变

通常由单引号(‘ ),双引号(” ),三引号(”’   “””)包围,其中单引号和双引号可互换,三引号可以由多行组成

三引号,多行字符串块,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,被当做注释。便捷的多行注释。

 

B.原始字符串(raw string)

原始字符串常量,r”abcd”,即去掉了反斜线转义机制。关闭转义机制,常见于正则表达式

特殊字符串,以大写R 或小写r开始,为正则表达式设计的,其中\不再表示转义

【用于处理正则表达式,减少反斜杠】

path = r’e:\book’

可以方便地表示系统路径

 

C.转义符

\n换行,\\反斜杠

\t制表  \’单引号

\r回车 \”双引号

 

D.特性

不可变性:在创建之后就不能就地改变(同java),不能通过对其某一位置进行赋值而改变字符

划分为不可变序列,这些字符串所包含的字符存在从左到右的顺序,不可在原处修改。

python中字符串相当于一个不可变序列的列表,一旦声明,每个字符位置固定

 

>>>s=’spam’

>>>s[0]=’k’   #TypeError

 

修改字符串类似java,重新赋值

s = ‘k’ + s[1:]

 

2.基本操作:

A.base op

长度len(s)

连接‘s ’ + ‘pam’   或  ‘s’’pam’  [建议使用前者,可读性

重复: ‘HI’*4

Python不允许在+表达式中出现其他类型,需要手工转【这点不同于java】

‘abc’+str(9)

 

B.字符串转换:

int(‘42’)

str(42)

float(’42.0’)

字符串与数字相互转换

string.atoi(s[,base]) 字符串-》数字

s:进行转换的字符串

base:可选,目标进制

 

str() 数字-》字符串

str(4)

 

ord(‘s’) #转ASCII

chr(115) #转字符

 

字符串和列表的转换

s=’spam’

l = list(s)

k = ‘’.join(l)

 

C. 修改字符串:

s =  s+’a’

s = s[3:] + ‘b’

s = s.replace(‘pl’,’pa’)

 

D. 索引和分片

 

正序获取:str[0]

倒序获取:str[-i] 其中最后一个字符序号为-1

 

str[a:b] a到b-1区间内的字符串

str[0:-2]与str[:-2]一样

 

索引s[i]

  s[0]首个

  s[-1] = s[len(s)-1] 倒数第一个

分片s[i:j]

   不含上边界,s[1:3] 取[1-2]

  s[1:]取1到结束   s[:3] 取开始到2

  s[:-1]开始到倒数第二个

  s[:]开始到结尾,相当于一个复制

  s[1:10:2]  取1-9,步长=2

  s[a:b:-2] 步长为负数,两个边界意义反转了,表示从b+1到a,步长-2

   s=’abcdefg’   s[5:1:-1] 得到 fedc

  s[1:3] == s[slice(1,3)]  内置函数

 

3.字符串内建函数

【字符串方法是python文本处理头号工具】

string.capitalize() 字符串第一个字符大写
string.center(width,[,fill]) 原字符居中,空格填充至width长度
string.count(str,beg=0,end=len(string)) 获得字符串中某一个子串的数目,计算出现次数,可指定范围
string.decode(encoding=’UTF-8’,errors=’strict’) 解码字符串,出错默认报ValueError,除非errors是ignore或replace
string.encode(encoding=’UTF-8’,errors=’strict’)  
string.endswith(suffix,beg=0,end=len(string)) 是否以**结尾
string.expandtabs(tabsize=8) 把字符串中tab转为空格,默认8个
string.find(str,beg=0,end=len(stirng)) 检测是否包含str,存在返回开始索引,否则返回-1
string.index(str,begin=0,end=len(string)) 同find,不存在报异常
string.isalnum() 至少一个字符,且所有字符均为字母或数字,True. 检测字符串是否只包含0-9A-Za-z
string.isalpha() 至少一个字符,所有字符都是字母,True. 检测字符串是否只包含字母
string.isdecimal() 只包含十进制数,True
stirng.isdigit() 只包含数字,True. 检测字符串是否仅包含数字
string.islower() 至少一个区分大小写字符且所有字符小写,True. 检测字符串是否均为小写字母
string.isnumeric() 只含数字字符,True
string.isspace() 只包含空格,True. 检测字符串是否均为空白字符
string.istitle() 标题化字符,True. 检测字符串中的单词是否为首字母大写
string.isupper() 至少一个区分大小写字符且所有字符大写,True. 检测字符串是否均为大写字母
string.join(seq) 以string作为分隔符,seq中所有元素合并为新的字符串. 将原字符串插入参数字符串中的每两个字符之间
string.ljust(width) 返回一个原字符串左对齐,空格补充至长度width
string.lower() 转小写. 将字符串全部转为小写
string.lstrip() 截掉左侧的空格
string.partition(str) = find+split,从str出现第一个位置,截断为pre_str,str,after_str元组,不含str则pre_str=str
string.replace(str1,str2,num=string.count(str1)) 替换,指定不超过num次,可作为模板实现
string.rfind(str,beg=0,end=len(string)) 同find,右边开始
string.rindex(str,beg=0,end=len(string)) 同index,右边开始
string.rjust(width) 右对齐,空格补齐
string.rpartition(str) 同partition,右边开始
string.rstrip([chars]) 清理右侧空白,包括换行符,返回处理后字符串
string.split(str=””, maxsplit =string.count(str))  以str切片,可指定分割次数, 分割字符串,返回列表,默认分隔符空格
string.splitlines(num=string.count(‘\n’))s.splitlines([keepends]) 按行分隔,可指定分割次数
string.startswith(obj,beg=0,end=len(string)) 以str开头,True. 检测字符串是否以某一子串开头
string.strip([obj]) 在string上执行lstrip和rstrip
string.swapcase 反转string中大小写. 字符串中小写转大写,大写转小写
string.title() 标题花,单词首字母大写,其余小写
string.translate(str,del=””)s.translate(table) 根据str给出表转换string字符,要过滤的字符放在del参数中
string.upper() 转大写. 将字符串全部转为大写
string.zfill(width) 返回长度width的字符串,原字符串右对齐,前面填充0
len(string) 获取字符串的长度

 

4.格式化输出字符串

%c 单个字符

%d 十进制整数

%o 八进制整数

%s 字符串

%x 十六进制整数,其中字母小写

%X 十六进制整数,其中字母大写

 

str = “so %s a day!”

str % ‘beautiful’

 

“%s,a,b” %”TOM” 格式化

‘{0} is {1}’.format(‘a’,’b’)

 

%[(name)][flags][width][,precision]typecode

-左对齐   +正负号 0补0

 

%-6d六位左对齐

%06d六位补零

 

基于字典的格式化

“%(n)d %(x)x” % {“n”:1 , “x”:spam}

 

python2.6之后格式化新方法:

可以通过位置或关键字进行填充

template = “{0}, {1}  and {2}”

template.format(‘spam’,’ham’,’eggs’)

template = “{motto},{pork} and food”

template.format (motto=”a”,port = ‘ham’,food=’eggs’)

template = “{motto}, {0} and {food}”

template.format(‘ham’,motto=”a”,food=”b”)

存在其他更强大的用法,参见p198

 

格式化字符串:

pattern = “%s —–%s”

c = parttern %(a,b) #格式化后总返回新的字符串

 

5.字符串相关模块:

string 字符串相关类和函数,例如Templatere正则表达式模块

struct字符串和二进制转换

c/StringIO字符串缓冲对象,操作方法类似file

base64 Base16,32,64数据编解码

codecs解码器注册和基类

crypt进行单方面加密

difflib找出序列不同

hashlib多种不同安全哈希算法和信息摘要算法的API

hma HMAC信息鉴权算法python实现

md5 RSA的MD5信息摘要鉴权

rotor提供多平台加密解密服务

sha NIAT的安全哈希算法SHA

stringprep提供用于IP协议的Unicode字符串

textwrap 文本包装和填充

unicodedata Unicode数据库

 

6.其他

A.获得帮助

>>>help(str)

>>> dir(str)

>>> help(str.replace)

 

 

大家还是直接看代码比较直接,以下是代码及其运行结果:

 

[python] view plaincopyprint?
  1. #string.py 字符串操作函数   
  2. #字符串声明方式   
  3. stra = ‘a python string’  
  4. strb = “b python /n string” #带转义的   
  5. strc = ””’two lines python 
  6.           string”’  
  7. strd = “””two lines python 
  8.           string”””  
  9. print(stra)  
  10. print(strb)  
  11. print(strc)  
  12. print(strd)  
  13. #字符串相当于一个不可变序列列表   
  14. #正序获取   
  15. print( stra[0:6] )        #序号0-5   
  16. #倒序获取 str[-i] 最后一个字符序号为 -1   
  17. print( stra[-6:-1] )      #序号-6 到 -2   
  18. print(‘——-string operations ——–‘)  
  19. #获取字符串长度   
  20. print( len(stra) )  
  21. #首字母大写   
  22. print( stra.capitalize() )  
  23. #计算子串出现次数   
  24. print( stra.count(‘python’) )  
  25. #获得某一子串的起始位置   
  26. print( stra.find(‘python’) )  
  27. #将字符串全部小写   
  28. print( stra.lower() )  
  29. #将字符串全部大写   
  30. print( stra.upper() )  
  31. #将字符串中小写转大写,大写转小写   
  32. print( stra.swapcase() )  
  33. #将字符串中所有单词首字母大写   
  34. print( stra.title() )  
  35. #将原字符串插入到参数字符串红的每两个字符之间   
  36. print( stra.join(‘*#!’) )  
  37. #切分字符串,若不指定分隔符,默认空格   
  38. print( stra.split() )  
  39.   
  40. #检测是否只包含0-9A-Za-z   
  41. print( stra.isalnum() )  
  42. #检测是否只包含字母   
  43. print( stra.isalpha() )  
  44. #检测是否只包含数字   
  45. print( stra.isdigit() )  
  46. #检测字符串是否均为小写   
  47. print( stra.islower() )  
  48. #检测字符串是否均为大写   
  49. print( stra.isupper() )  
  50. #检测字符串是否均为空白   
  51. print( stra.isspace() )  
  52. #检测字符串中的单词是否全部为首字母大写   
  53. print( stra.istitle() )  
  54. #检测是否以某一字符串开头   
  55. print( stra.startswith(‘a’) )  
  56. #检测字符串是否以某一字符串结尾   
  57. print( stra.endswith(‘b’) )  
  58. #格式化输出字符串   
  59. str = “so %s a day!”  
  60. print( str % ‘beautiful’ )  
#string.py 字符串操作函数
#字符串声明方式
stra = 'a python string'
strb = "b python /n string" #带转义的
strc = '''two lines python
          string'''
strd = """two lines python
          string"""
print(stra)
print(strb)
print(strc)
print(strd)
#字符串相当于一个不可变序列列表
#正序获取
print( stra[0:6] )        #序号0-5
#倒序获取 str[-i] 最后一个字符序号为 -1
print( stra[-6:-1] )      #序号-6 到 -2
print('-------string operations --------')
#获取字符串长度
print( len(stra) )
#首字母大写
print( stra.capitalize() )
#计算子串出现次数
print( stra.count('python') )
#获得某一子串的起始位置
print( stra.find('python') )
#将字符串全部小写
print( stra.lower() )
#将字符串全部大写
print( stra.upper() )
#将字符串中小写转大写,大写转小写
print( stra.swapcase() )
#将字符串中所有单词首字母大写
print( stra.title() )
#将原字符串插入到参数字符串红的每两个字符之间
print( stra.join('*#!') )
#切分字符串,若不指定分隔符,默认空格
print( stra.split() )

#检测是否只包含0-9A-Za-z
print( stra.isalnum() )
#检测是否只包含字母
print( stra.isalpha() )
#检测是否只包含数字
print( stra.isdigit() )
#检测字符串是否均为小写
print( stra.islower() )
#检测字符串是否均为大写
print( stra.isupper() )
#检测字符串是否均为空白
print( stra.isspace() )
#检测字符串中的单词是否全部为首字母大写
print( stra.istitle() )
#检测是否以某一字符串开头
print( stra.startswith('a') )
#检测字符串是否以某一字符串结尾
print( stra.endswith('b') )
#格式化输出字符串
str = "so %s a day!"
print( str % 'beautiful' )

 

 

Tags:

python资料,

如果您喜欢我的博客,欢迎点击图片定订阅到邮箱填写您的邮件地址,订阅我们的精彩内容: 也可以点击链接【订阅到鲜果】

如果我的想法或工具帮助到了你,也可微信扫下方二维码打赏本人一杯咖啡


来自 Seay互联网安全博客
本文地址:http://www.cnseay.com/1929/
文章版权说明请看置顶文章,尊重作者,转载请以链接形式标明原文地址

马上分享给你的朋友吧~

发表评论

你的大名(必填)

你的邮箱(必填)

评论内容(必填)