Python字符串详细介绍
简介
字符串序列用于表示和存储文本,python中字符串是不可变的,一旦声明,不能改变
通常由单引号('),双引号("),三引号('''""")包围
其中三引号可以由多行组成,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,被当做注释。便捷的多行注释
Python实际三类字符串:
1.通常意义字符串(str)
2.原始字符串,以大写R或小写r开始,r'',不对特殊字符进行转义
3.Unicode字符串,u''basestring子类
在Python中,字符串是“不可改变的序列”
1.不可变
2.满足序列基本操作,按位置存取,切片及索引
字符串
1.获得帮助:
>>>help(str) >>>dir(str) >>>help(str.replace)
2.不可变性
在创建之后就不能就地改变(同java),不能通过对其某一位置进行赋值而改变字符划分为不可变序列,这些字符串所包含的字符存在从左到右的顺序,不可在原处修改。python中字符串相当于一个不可变序列的列表,一旦声明,每个字符位置固定
意味着若想改变,必须新建一个!
>>>s='spam' >>>s[0]='k' #TypeError #修改字符串类似java,重新赋值 s=‘k'+s[1:]
原始字符串
原始字符串常量,r”abcd”,(r/R)即去掉了反斜线转义机制。关闭转义机制,即\不再表示转义
用处:
1.正则表达式
用于处理正则表达式,减少反斜杠
p4search=re.compile(r'\s*')
2.系统路径
可以方便地表示系统路径
path=r'e:\book'
unicode字符串
Unicode是书写国际文本的标准方法。
Python允许你处理Unicode文本——你只需要在字符串前加上前缀u或U。例如,u"ThisisaUnicodestring."
BP:在你处理文本文件的时候使用Unicode字符串,特别是当你知道这个文件含有用非英语的语言写的文本。
常用操作
1.基本操作
+ :string1+string2 #联接字符串,将后一个串链接到前一个串的后面 Python不允许在+表达式中出现其他类型,需要手工转【这点不同于java】‘abc'+str(9) * :string*n #创建一个新字符串重复n次原来的串 [] :string[n] #从字符串中获取对应位置的一个字符 [:]:string[n:m] #截取字符串,如果为:m从头到m如果为n:从n到尾 in :charinstring#判断一个字符是否在串中,如果在返回为真(True) notin:charnotinstring#判断一个字符是否不在串中,如果在返回为真(True) r/R:r/Rstring #禁止转义字符的实际意义,整个字符为原始意义 len():长度len(s)
2.类型转换
字符串和数字相互转换
字符串到数字int/float/long
数字到字符串str
>>>int(42) 42 >>>int('42') 42 >>>str(42) '42' >>>float('42.0') 42.0 >>>str(42.0) '42.0'
或者使用string模块的函数
s:进行转换的字符串,base:可选,目标进制
importstring string.atoi(s[,base]) #base默认为10,如果为0,那么s就可以是012或0x23这种形式的字符串,如果是16那么s就只能是0x23或0X12这种形式的字符串
string.atol(s[,base]) #转成long
string.atof(s[,base]) #转成float