源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Python字符串详细介绍

  • 时间:2020-04-07 15:20 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Python字符串详细介绍
[b]简介[/b] 字符串序列用于表示和存储文本,python中字符串是不可变的,一旦声明,不能改变 通常由单引号(' ),双引号(" ),三引号(''' """)包围 其中三引号可以由多行组成,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,被当做注释。便捷的多行注释 Python实际三类字符串: 1.通常意义字符串(str) 2.原始字符串,以大写R 或 小写r开始,r'',不对特殊字符进行转义 3.Unicode字符串,u'' basestring子类 在 Python 中,字符串是“不可改变的序列” 1.不可变 2.满足序列基本操作,按位置存取,切片及索引 [b]字符串[/b] 1.获得帮助:
[u]复制代码[/u] 代码如下:
>>> help(str) >>> dir(str) >>> help(str.replace)
2.不可变性 在创建之后就不能就地改变(同java),不能通过对其某一位置进行赋值而改变字符划分为不可变序列,这些字符串所包含的字符存在从左到右的顺序,不可在原处修改。python中字符串相当于一个不可变序列的列表,一旦声明,每个字符位置固定 意味着若想改变,必须新建一个!
[u]复制代码[/u] 代码如下:
>>>s='spam' >>>s[0]='k'   #TypeError #修改字符串类似java,重新赋值 s = ‘k' + s[1:]
[b]原始字符串[/b] 原始字符串常量,r”abcd”,(r/R)即去掉了反斜线转义机制。关闭转义机制,即\不再表示转义 用处: 1.正则表达式 用于处理正则表达式,减少反斜杠
[u]复制代码[/u] 代码如下:
p4search = re.compile(r'\s*')
2.系统路径 可以方便地表示系统路径
[u]复制代码[/u] 代码如下:
path = r'e:\book'
[b]unicode字符串[/b] Unicode是书写国际文本的标准方法。 Python允许你处理Unicode文本——你只需要在字符串前加上前缀u或U。例如,u"This is a Unicode string." BP: 在你处理文本文件的时候使用Unicode字符串,特别是当你知道这个文件含有用非英语的语言写的文本。 [b]常用操作[/b] 1.基本操作
[u]复制代码[/u] 代码如下:
+   :string1+string2    #联接字符串,将后一个串链接到前一个串的后面     Python不允许在+表达式中出现其他类型,需要手工转【这点不同于java】‘abc'+str(9) *   :string*n           #创建一个新字符串重复n次原来的串 []  :string[n]          #从字符串中获取对应位置的一个字符 [:] :string[n:m]        #截取字符串,如果为:m从头到m如果为n:从n到尾 in  :char in string #判断一个字符是否在串中,如果在返回为真(True) not in :char not in string #判断一个字符是否不在串中,如果在返回为真(True) r/R : r/Rstring     #禁止转义字符的实际意义,整个字符为原始意义 len() : 长度len(s)
2.类型转换 字符串和数字相互转换 字符串到数字int/float/long 数字到字符串str
[u]复制代码[/u] 代码如下:
>>> int(42) 42 >>> int('42') 42 >>> str(42) '42' >>> float('42.0') 42.0 >>> str(42.0) '42.0'
或者使用string模块的函数 s:进行转换的字符串, base:可选,目标进制
[u]复制代码[/u] 代码如下:
import string string.atoi(s[,base])   #base默认为10,如果为0,那么s就可以是012或0x23这种形式的字符串,如果是16那么s就只能是0x23或0X12这种形式的字符串
    string.atol(s[,base])       #转成long string.atof(s[,base])       #转成float
字符串和列表的转换 字符串转列表:
[u]复制代码[/u] 代码如下:
s='spam' l = list(s) l2 = "hello world".spilt()
列表转字符串
[u]复制代码[/u] 代码如下:
k = ‘'.join(l)
注意,不能join列表中的非字符串 3.修改字符串
[u]复制代码[/u] 代码如下:
s =  s + 'a' s = s[3:] + ‘b' s = s.replace(‘pl','pa') a = '' #赋值空 del a  #整个变量删除
4.索引和分片 索引s[i]
[u]复制代码[/u] 代码如下:
s[0]首个 s[-1] = s[len(s)-1] 倒数第一个
分片s[i:j]
[u]复制代码[/u] 代码如下:
不含上边界,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)]  内置函数
[b]字符串格式化[/b] 这里只介绍基本字符串格式化,扩展在后续篇幅介绍%c 单个字符%d 十进制整数%o 八进制整数%s 字符串%x 十六进制整数,其中字母小写%X 十六进制整数,其中字母大写
[u]复制代码[/u] 代码如下:
>>> str = "so %s a day!" >>> str % 'beautiful' 'so beautiful a day!' >>> '{0} is {1}'.format('a','b') 'a is b' >>> template = "{0}, {1} and {2}" >>> template.format('a', 'b', 'c') 'a, b and c'
[b]内建函数列表[/b] 【字符串方法是python文本处理头号工具】 [b]string.capitalize()[/b] 字符串第一个字符大写 [b]string.center(width,[,fill])[/b] 原字符居中,空格填充至width长度 [b]string.count(str,beg=0,end=len(string))[/b] 获得字符串中某一个子串的数目,计算出现次数,可指定范围 [b]string.decode(encoding='UTF-8',errors='strict')[/b] 解码字符串,出错默认报ValueError,除非errors是ignore或replace [b]string.encode(encoding='UTF-8',errors='strict')[/b] [b]string.endswith(suffix,beg=0,end=len(string))[/b] 是否以**结尾 [b]string.expandtabs(tabsize=8)[/b] 把字符串中tab转为空格,默认8个 [b]string.find(str,beg=0,end=len(stirng))[/b] 检测是否包含str,存在返回开始索引,否则返回-1 [b]string.index(str,begin=0,end=len(string))[/b] 同find,不存在报异常,ValueError [b]string.isalnum()[/b] 至少一个字符,且所有字符均为字母或数字,True. 检测字符串是否只包含0-9A-Za-z [b]string.isalpha()[/b] 至少一个字符,所有字符都是字母,True. 检测字符串是否只包含字母 [b]string.isdecimal()[/b] 只包含十进制数,True [b]stirng.isdigit()[/b] 只包含数字,True. 检测字符串是否仅包含数字 [b]string.islower()[/b] 至少一个区分大小写字符且所有字符小写,True. 检测字符串是否均为小写字母 [b]string.isnumeric()[/b] 只含数字字符,True [b]string.isspace()[/b] 只包含空格,True. 检测字符串是否均为空白字符 [b]string.istitle()[/b] 标题化字符,True. 检测字符串中的单词是否为首字母大写 [b]string.isupper()[/b] 至少一个区分大小写字符且所有字符大写,True. 检测字符串是否均为大写字母 [b]string.join(seq)[/b] 以string作为分隔符,seq中所有元素合并为新的字符串. 将原字符串插入参数字符串中的每两个字符之间 [b]string.ljust(width)[/b] 返回一个原字符串左对齐,空格补充至长度width [b]string.lower()[/b] 转小写. 将字符串全部转为小写 [b]string.lstrip()[/b] 截掉左侧的空格 [b]string.partition(str)[/b] = find+split,从str出现第一个位置,截断为pre_str,str,after_str元组,不含str则pre_str=strstring.replace(str1,str2,num=string.count(str1))替换,指定不超过num次,可作为模板实现 [b]string.rfind(str,beg=0,end=len(string))[/b] 同find,右边开始 [b]string.rindex(str,beg=0,end=len(string))[/b] 同index,右边开始 [b]string.rjust(width)[/b] 右对齐,空格补齐 [b]string.rpartition(str)[/b] 同partition,右边开始 [b]string.rstrip([chars])[/b] 清理右侧空白,包括换行符,返回处理后字符串 [b]string.split(str=””, maxsplit =string.count(str))[/b] 以str切片,可指定分割次数, 分割字符串,返回列表,默认分隔符空格 [b]string.splitlines(num=string.count(‘\n'))[/b] s.splitlines([keepends])按行分隔,可指定分割次数 [b]string.startswith(obj,beg=0,end=len(string))[/b] 以str开头,True. 检测字符串是否以某一子串开头 [b]string.strip([obj])[/b] 在string上执行lstrip和rstrip [b]string.swapcase[/b] 反转string中大小写. 字符串中小写转大写,大写转小写 [b]string.title()[/b] 标题花,单词首字母大写,其余小写 [b]string.translate(str,del=””)[/b] s.translate(table)根据str给出表转换string字符,要过滤的字符放在del参数中 [b]string.upper()[/b] 转大写. 将字符串全部转为大写 [b]string.zfill(width)[/b] 返回长度width的字符串,原字符串右对齐,前面填充0 [b]len(string)[/b] 获取字符串的长度 [b]最佳实践[/b] [b]1.循环中用到长度[/b]
[u]复制代码[/u] 代码如下:
while i < len(stri): #修改 size = len(stri) while i < size
[b]2.字符串追加[/b]
[u]复制代码[/u] 代码如下:
l = ['a', 'b'] result = '' for i in l:     result += i #修改 result = ''.join(l)
[b]其他[/b] 1.转义符 几个常用: \n换行,\\反斜杠 \t制表  \'单引号 \r回车 \"双引号 [b]后续需扩展[/b] 字符串编码详解 字符串格式化 正则表达式 字符串涉及常用模块(序列化/文本包装等)
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部