Python中的str字符串

Python中的str字符串 特点:
  1. 字符串是有序的字符集合
  2. 使用单引号[’]、双引号[]、三引号[或者’’’]
  3. 字符串是不可不变对象
  4. Python3.0起,字符串就是Unicode类型(utf8)
声明方法
str1 = 'string'
str2 = "string2"
str3 = '''this's a "string" '''
str4 = """select * from user where name = 'xdd' """

str0001

配合字符串使用的符号
  • [\n]换行符号
  • [\t]相当于TAB按键
  • [r 或者R]表示不转译字符串中特殊符号
    • 例如:str5 = rhello \n xdd
      str0002
  • 常用转译字符有
    str0003
常用方法
  • join(iterable)-str 将可迭代对象使用指定字符[string]链接成新的字符返回。(注意:可迭代对象本身就是字符串)
    • iterable为可迭代对象
    • str0037
  • replace(old,new[,count])-str #将字符中匹配到old的字符串替换成new新的字符串
    • old 需要替换的字符
    • new 替换字符
    • count 替换次数,不指定默认全部替换
      str0014
  • strip([chars])-str #将自定字符串两端去除自定的字符集chars中的所有字符,如果chars没有指定,去除两端的空白字符
    • chars 切割符
      str0016
      str0017
查找字符
  • find(sub[,start[,end]])-int #在指定区间[ start,end),从左至右,查找字符串sub。找到返回索引,没找到返回-1
    • sub 要查找的字符串
    • start查找起始点索引
    • end查找区间的结束索引(不包含结束索引)
      str0018
  • rfind(sub[,start[,end]])-int #在指定区间[start,end)从右到左,查找字符串sub,找到返回索引,没找到返回-1
    • sub 要查找的字符串
    • start 要查找的起始点索引
    • end 要查找区间的结束索引(不包含结束索引)
      str0019
  • index(sub[,start[,end]])-int #在指定的区间[start,end),从左到右,查找子串sub。找到返回索引,没找到抛出异常ValueError(如果不设置start和end就在整个字符串中查找)
    • sub 要查找的字符串
    • start 查找区间的起始索引
    • end 查找区间的结束索引(不包含结束索引)
      str0020
  • rindex(sub[,start[,end]])-int #在指定的区间[start,end),从右到左,查找子串sub。找到返回索引,没找到抛出异常ValueError(如果不设置start和end就在整个字符串中查找)
    • sub 要查找的字符串
    • start 查找区间的起始索引
    • end 查找区间的结束索引(不包含结束索引)
统计判断
  • count(sub[,start[,end]])-int #在制定区间[start,end),从左到右,统计子串sub出现的次数(如果没有自定start和end默认在整个字符串中统计)
    • sub 要统计的字符串
    • start 统计的起始索引
    • end 统计的结束索引(不包含结束索引)
      str0021
  • endswith(suffix[,start[,end]])-bool #在指定区间[start,end),字符串是否是suffix字符结尾,是返回True 否返回False。如果不指定区间,默认区间是整个字符串
    str0022
  • startswith(prefix[,start[,end]])-bool #在指定区间[start,end),字符串是否是prefix开头。如果不指定区间,默认区间是整个字符串
    str0023
  • isalnum()-bool 是否是字母和数字组成
  • isalpha()-bool 是否是字母
  • isdecimal()-bool 是否只包含十进制数字
  • isdigit()-bool 是否全部数字(0-9)
  • isidentifier()-bool 是否是字母下划线开头,其他都是字母、数字、下划线
  • islower()-bool 是否都是小写
  • isupper()-bool 是否都是大写
  • isspace()-bool 是否只包含空白字符
切割字符类
  • split(sep=None,maxsplit=-1) - str类型的list集合,使用自定义字符来切割字符串
    • 使用自定的字符切割字符串,返回切割后的字符数组
    • sep指定分割字符串,缺省情况下空白符号为切割符号。
    • maxsplit 指定切割的次数,-1表示遍历整个字符串
      str0004
      str0005
  • splitlines(keepends)-str类型的list集合,使用行来切割字符串
    • 使用行来切割字符,行分隔符包括[\n][\r\n][\r]等
    • keepends指是否保留行分隔符,默认不保留(默认值:keepends=False)
      str0006
  • partition(sep)-(head,sep,tail) 切割字符串,返回一个三元组。(从左到右切割)
    • sep切割符号,必须指定
    • 将指定字符从左至右切割成,头部,分割符,尾部三部分组成的三元组;如果没有找到分割符,就只返回头部和2个空元素的三元组。
      str0007
  • rpartition(sep)-(head,sep,tail) 切割字符串,返回一个三元组(从右到左切割)
    • 将指定字符从右到左切割成,头部,分隔符,尾部三部分组成的三元组;如果没有找到分隔符,就返回2个空元素和尾的三元组
      str0008
大小写转换类
  • upper()-str #将字符中所有字符转换成大写
  • lower()-str #将字符中所有字符转换成小写
  • swapcase()-str #将字符中大写转换成小写,小写转换成大写
  • capitalize()-str #将字符串中首个单词的首字母转换成大写字母
    str0009
  • title()-str #将英文单词中每个字母的首字母都转换成大写字母
    str0010
位置调整类
  • center(width[,fillchar])-str #将字符串按照指定方宽度居中显示。空白位置使用fillchar填充。默认值为空格符号
    • width 总宽度
    • fillchar 填充的字符(不能是字符串)
      str0011
  • zfill(width)-str #将指定字符按照width宽度居右显示。不够的地方使用0填充
    • width:打印宽度,局右,左边用0填充
      str0012
  • ljust(width[.fillchar])-str #将字符左对齐显示width长度,不够长度使用fillchar字节替代。
    • width:打印宽度
    • fillchar: 补充字符
      str0013
  • rjust(width[,fillchar])-str #将字符右对齐显示width长度,不够使用fillchar字节替代。
    str0015
字符串的格式化 C语言风格的字符串格式
  • 在2.5版本之前,只能使用printf style风格的print输出
    • printf-style formatting,来自于C语言的printf函数
  • 格式要求:
    1. 占位符:使用%和格式字符组成。例如%s 、%d等
      • s调用star(),r会调用repr()。所有对象都可以被这两个转换。
    2. 站位富中还可以插入修饰字符,例如%03d表示打印字符的位置长度为3,不够签名补0
    3. format % values,格式字符串和被格式的值之间使用%分隔
    4. values只能是一个对象;或者一个和格式字符串占位符数目相等的元组,或一个字典
      str0024
  • 例子No1
    • ["%d get me %f" % (20,20.222)]输出结果为:‘20 get me 20.222000’
  • 例子No2
    • [I an %03d % 20]也等价于[I am %03d % (20,)]
      其中:%03d 输出一个整数,这个整数有效位数小于3时,在数字前面补0
      str0025
  • 例子No3
    • [I like %s % ‘Python’]
      str0026
  • 例子No4
    • ["%3.2f%%,0x%x,0x%02X" % (65.5687,10,16)]
    • 其中:
      • [%3.2f%%]表示,输出一个浮点数,
      • [整数部分+小数点+小数部分]有效位数一共为3位,其中小数部分有效位数为2位。不够的位数用空格补齐。其中%%为转译输出%号。如果是[%03.2f%%]那么不够的位数就用0补齐
      • [0x%x]按照16进制输出 10 在16进制数中对应a
        str0027
  • 例子No5
    • ["%0-10.2f%%,0x%x,0x%02X" % (65.5687,10,16)]
    • 其中[%0-10.2f%%]中[-]负号表示右对齐,默认不写为左对齐
      str0028
format字符串格式化
  • 语法:{}{xxx}.format(*args,**kwargs)-str
    • args是位置参数,是一个元组
    • kwargs是关键字参数,是一个字典
    • {}花括号为占位符,表示按照顺序匹配参数,{n}表示取位置参数args[n]对应的值
    • {xxx}其中xxx为关键字名称,表示在关键字参数kwargs中搜索名称一致的参数对应值
    • {{}}表示打印花括号(注意:双符号表示转译输出)
  • 位置参数:
    • 按照位置顺序用位置参数替换前面的格式字符串的占位符
    • 例如:[{}:{}.format(192.168.61.100,8888)]
      str0029
  • 关键字参数或命名参数
    • 位置参数按照序号匹配,关键字参数按照名称匹配
    • 例如:[{server}{1}:{0}.format(8888,192.168.61.100,server=xdd)]
      str0030
  • 访问元素:
    • 例如:["{0[0]}.{0[1]}".format((‘xdd’,‘com’))]
      str0031
  • 对象属性访问
    • 例如:["({p1.x},{p1.y})".format(p1=p)]
      str0032
  • 对齐
    • 例如:["{0}*{1}={2: 3}".format(3,2,3*2)]
    • 其中[{2: 3}]表示输出数组中下标为2的内容。输出字符长度为3个字符长度,如果不够用空格补齐。小于号表示向左对齐输出
      str0033
  • 居中
    • 例如:[{:*^30}.format(‘centered’)]
      • 表示将centerd单词居中显示,显示长度为30个字符,不够的地方用*星号替代
      • [^]表示居中
        str0034
  • 进制
    • 例如:[int:{0:d}; hex:{0:x}; oct:{0:o}; bin:{0:b}.format(50)]
      • 其中[{0:d}]表示按照十进制数字输出
      • [{0:x}]表示按照十六进制数字输出
      • [{0:o}]表示按照八进制数字输出
      • [{0:b}]表示按照二进制数字输出
      • [{0:#b}]中#表示输出数字时,带上精制数的对应表示符号
        str0035
    • 例如:str0036
      • 其中:192.168.0.1名称:点分四段十进制表示法的ipv4地址
      • [.format(*octets)]中*表示,将octets列表转换为对应长度的元素
最新回复(0)
/jishulCpdzVC1d7rlCwkN_2Fe3NhHcuMELWrT6cjsHoIHPVtKw_3D4858748
8 简首页