zoukankan      html  css  js  c++  java
  • 第四部分-Python字符串常用方法详解

    Python字符串常用方法详解

    Python字符串常用方法详解

    Python字符串拼接(包含字符串拼接数字)

    前面我们见过书写字符串的一种特殊方式,即直接将两个字符串紧挨着写在一起,这样的话 Python 就会自动拼接它们;
    这种写法只是书写字符串的一种特殊方法,并不能算是真正意义上的拼接字符串。Python 使用加号(+)作为字符串的拼接运算符

    s1 = "Hello,"'Charlie'
    print(s1)
    s2 = "Python "
    s3 = "iS Funny"
    #使用+拼接字符串
    s4 = s2 + s3
    print(s4)

    Python字符串拼接数字

    s1 = "这是数字: "
    p = 99.8
    #字符串直接拼接数值,程序报错
    # print(s1 + p)
    #使用str()将数值转换成字符串
    print(s1 + str(p))
    #使用repr()将数值转换成字符串
    print(s1 + repr(p))

    str() 和 repr() 函数都可以将数字转换成字符串,其中 str 是 Python 内置的类型(和 int、float 一样),而 repr() 则只是一个函数。此外,repr 还有一个功能,它会以 Python 表达式的形式来表示值。

    st = "I will play my fife"
    print (st)
    print(repr(st))

    Python字符串拼接数字

    str() 和 repr() 函数都可以将数字转换成字符串,其中 str 是 Python 内置的类型(和 int、float 一样),而 repr() 则只是一个函数。此外,repr 还有一个功能,它会以 Python 表达式的形式来表示值。

    Python截取字符串(字符串切片)方法详解

    Python 字符串直接在方括号([])中使用索引即可获取对应的字符,其基本语法格式为:
    string[index]

    除可获取单个字符之外,Python 也可以在方括号中使用范围来获取字符串的中间“一段”(被称为子串),其基本语法格式为:
    string[start : end : step]

    Python 字符串还支持用 in 运算符判断是否包含某个子串。

    还可使用全局内置的 min() 和 max() 函数获取字符串中最小字符和最大字符。

    Python split()方法详解:分割字符串

    split() 方法可以实现将一个字符串按照指定的分隔符切分成多个子串,这些子串会被保存到列表中(不包含分隔符),作为方法的返回值反馈回来。该方法的基本语法格式如下:
    str.split(sep,maxsplit)

    此方法中各部分参数的含义分别是:
    1. str:表示要进行分割的字符串;
    2. sep:用于指定分隔符,可以包含多个字符。此参数默认为 None,表示所有空字符,包括空格、换行符“ ”、制表符“ ”等。
    3. maxsplit:可选参数,用于指定分割的次数,最后列表中子串的个数最多为 maxsplit+1。如果不指定或者指定为 -1,则表示分割次数没有限制。

    在 split 方法中,如果不指定 sep 参数,那么也不能指定 maxsplit 参数。
    同内建函数(如 len)的使用方式不同,字符串变量所拥有的方法,只能采用“字符串.方法名()”的方式调用。

    Python join()方法:合并字符串

    join() 方法也是非常重要的字符串方法,它是 split() 方法的逆方法,用来将列表(或元组)中包含的多个字符串连接成一个字符串。

    join() 方法的语法格式如下:

    newstr = str.join(iterable)

    此方法中各参数的含义如下:
    newstr:表示合并后生成的新字符串;
    str:用于指定合并时的分隔符;
    iterable:做合并操作的源字符串数据,允许以列表、元组等形式提供。

    dir = '','usr','bin','env'
    teg_dir = '/'.join(dir)
    print(teg_dir) # /usr/bin/env

    Python count()方法:统计字符串出现的次数

    count 方法用于检索指定字符串在另一字符串中出现的次数,如果检索的字符串不存在,则返回 0,否则返回出现的次数。

    count 方法的语法格式如下:
    str.count(sub[,start[,end]])

    此方法中,各参数的具体含义如下:
    str:表示原字符串;
    sub:表示要检索的字符串;
    start:指定检索的起始位置,也就是从什么位置开始检测。如果不指定,默认从头开始检索;
    end:指定检索的终止位置,如果不指定,则表示一直检索到结尾。

    str = "c.biancheng.net"
    print(str.count('.', 2, -3))
    print(str.count('.', 2, -4))

    Python find()方法:检测字符串中是否包含某子串

    find() 方法用于检索字符串中是否包含目标字符串,如果包含,则返回第一次出现该字符串的索引;反之,则返回 -1。

    find() 方法的语法格式如下:
    str.find(sub[,start[,end]])

    此格式中各参数的含义如下:
    str:表示原字符串;
    sub:表示要检索的目标字符串;
    start:表示开始检索的起始位置。如果不指定,则默认从头开始检索;
    end:表示结束检索的结束位置。如果不指定,则默认一直检索到结尾。

    str = "c.biancheng.net"
    print(str.find('.',2,-4))
    print(str.find('.',2))

     python 还提供了 rfind() 方法,与 find() 方法最大的不同在于,rfind() 是从字符串右边开始检索。

    Python index()方法:检测字符串中是否包含某子串

    同 find() 方法类似,index() 方法也可以用于检索是否包含指定的字符串,不同之处在于,当指定的字符串不存在时,index() 方法会抛出异常。

    index() 方法的语法格式如下:
    str.index(sub[,start[,end]])

    此格式中各参数的含义分别是:
    str:表示原字符串;
    sub:表示要检索的子字符串;
    start:表示检索开始的起始位置,如果不指定,默认从头开始检索;
    end:表示检索的结束位置,如果不指定,默认一直检索到结尾。

    str = "c.biancheng.net"
    print(str.index('.'))
    print( str.index('z'))

    同 find() 和 rfind() 一样,字符串变量还具有 rindex() 方法,其作用和 index() 方法类似,不同之处在于它是从右边开始检索

    Python startswith()和endswith()方法

    startswith() 方法

    用于检索字符串是否以指定字符串开头,如果是返回 True;反之返回 False。此方法的语法格式如下:
    str.startswith(sub[,start[,end]])

    此格式中各个参数的具体含义如下:
    str:表示原字符串;
    sub:要检索的子串;
    start:指定检索开始的起始位置索引,如果不指定,则默认从头开始检索;
    end:指定检索的结束位置索引,如果不指定,则默认一直检索在结束。

    endswith()方法

    用于检索字符串是否以指定字符串结尾,如果是则返回 True;反之则返回 False。该方法的语法格式如下:
    str.endswith(sub[,start[,end]])

    此格式中各参数的含义如下:
    str:表示原字符串;
    sub:表示要检索的字符串;
    start:指定检索开始时的起始位置索引(字符串第一个字符对应的索引值为 0),如果不指定,默认从头开始检索。
    end:指定检索的结束位置索引,如果不指定,默认一直检索到结束。

    str = "c.biancheng.net"
    print(str.startswith("c"))
    print(str.endswith("t"))

    Python字符串大小写转换(3种)函数及用法

    为了方便对字符串中的字母进行大小写转换,字符串变量提供了 3 种方法,分别是 title()、lower() 和 upper()。

    Python title()方法
    title() 方法用于将字符串中每个单词的首字母转为大写,其他字母全部转为小写,转换完成后,此方法会返回转换得到的字符串。如果字符串中没有需要被转换的字符,此方法会将字符串原封不动地返回。

    title() 方法的语法格式如下:
    str.title()

    Python lower()方法
    lower() 方法用于将字符串中的所有大写字母转换为小写字母,转换完成后,该方法会返回新得到的字符串。如果字符串中原本就都是小写字母,则该方法会返回原字符串。

    lower() 方法的语法格式如下:
    str.lower()

    Python upper()方法
    upper() 的功能和 lower() 方法恰好相反,它用于将字符串中的所有小写字母转换为大写字母,和以上两种方法的返回方式相同,即如果转换成功,则返回新字符串;反之,则返回原字符串。

    upper() 方法的语法格式如下:
    str.upper()

    str = "c.biancheng.NET"
    print(str.title()) # C.Biancheng.Net
    print(str.lower()) # c.biancheng.net
    print(str.upper()) # C.BIANCHENG.NET

    Python去除字符串中空格(删除指定字符)的3种方法

    字符串变量提供了 3 种方法来删除字符串中多余的空格和特殊字符,它们分别是:
    strip():删除字符串前后(左右两侧)的空格或特殊字符。
    lstrip():删除字符串前面(左边)的空格或特殊字符。
    rstrip():删除字符串后面(右边)的空格或特殊字符。

    注意,Python 的 str 是不可变的(不可变的意思是指,字符串一旦形成,它所包含的字符序列就不能发生任何改变),因此这三个方法只是返回字符串前面或后面空白被删除之后的副本,并不会改变字符串本身。

    Python strip()方法

    strip() 方法用于删除字符串左右两个的空格和特殊字符,该方法的语法格式为:
    str.strip([chars])

    其中,str 表示原字符串,[chars] 用来指定要删除的字符,可以同时指定多个,如果不手动指定,则默认会删除空格以及制表符、回车符、换行符等特殊字符。

    Python lstrip()方法

    lstrip() 方法用于去掉字符串左右的空格和特殊字符。该方法的语法格式如下:
    str.lstrip([chars])

    其中,str 和 chars 参数的含义,分别同 strip() 语法格式中的 str 和 chars 完全相同。

    Python rstrip()方法

    rstrip() 方法用于删除字符串右侧的空格和特殊字符,其语法格式为:
    str.rstrip([chars])

    str 和 chars 参数的含义和前面 2 种方法语法格式中的参数完全相同。

    str = "  c.biancheng.net 	
    
    "
    print(str) # '  c.biancheng.net'
    print(str.strip()) # 'c.biancheng.net'
    print( str.strip(" ,
    ")) # 'c.biancheng.net     
    '
    
    print(str.lstrip()) # 'c.biancheng.net     
    '
    print( str.rstrip()) # '  c.biancheng.net'

    Python format()格式化输出方法详解

    format() 方法的语法格式如下:
    str.format(args)

    此方法中,str 用于指定字符串的显示样式;args 用于指定要进行格式转换的项,如果有多项,之间有逗号进行分割。

    学习 format() 方法的难点,在于搞清楚 str 显示样式的书写格式。在创建显示样式模板时,需要使用{}和:来指定占位符,其完整的语法格式为:
    { [index][ : [ [fill] align] [sign] [#] [width] [.precision] [type] ] }

    注意,格式中用 [] 括起来的参数都是可选参数,即可以使用,也可以不使用。各个参数的含义如下:
    index:指定:后边设置的格式要作用到 args 中第几个数据,数据的索引值从 0 开始。如果省略此选项,则会根据 args 中数据的先后顺序自动分配。
    fill:指定空白处填充的字符。注意,当填充字符为逗号(,)且作用于整数或浮点数时,该整数(或浮点数)会以逗号分隔的形式输出,例如(1000000会输出 1,000,000)。

    align    含义
    <    数据左对齐。
    >    数据右对齐。
    =    数据右对齐,同时将符号放置在填充内容的最左侧,该选项只对数字类型有效。
    ^    数据居中,此选项需和 width 参数一起使用。

    sign:指定有无符号数

    sign参数    含义
    +    正数前加正号,负数前加负号。
    -    正数前不加正号,负数前加负号。
    空格    正数前加空格,负数前加负号。
    #    对于二进制数、八进制数和十六进制数,使用此参数,各进制数前会分别显示 0b、0o、0x前缀;反之则不显示前缀。

    width:指定输出数据时所占的宽度。
    .precision:指定保留的小数位数。
    type:指定输出数据的具体类型

    type类型值    含义
    s    对字符串类型格式化。
    d    十进制整数。
    c    将十进制整数自动转换成对应的 Unicode 字符。
    e 或者 E     转换成科学计数法后,再格式化输出。
    g 或 G    自动在 e 和 f(或 E 和 F)中切换。
    b    将十进制数自动转换成二进制表示,再格式化输出。
    o    将十进制数自动转换成八进制表示,再格式化输出。
    x 或者 X    将十进制数自动转换成十六进制表示,再格式化输出。
    f 或者 F    转换为浮点数(默认小数点后保留 6 位),再格式化输出。
    %    显示百分比(默认显示小数点后 6 位)。

    练习:

    str="网站名称:{:>9s}	网址:{:s}"
    print(str.format("C语言中文网", "c.biancheng.net"))
    
    #以货币形式显示
    print("货币形式:{:,d}".format(1000000))
    #科学计数法表示
    print("科学计数法:{:E}".format(1200.12))
    #以十六进制表示
    print("100的十六进制:{:#x}".format(100))
    #输出百分比形式
    print("0.01的百分比表示:{:.0%}".format(0.01))

    Python encode()和decode()方法:字符串编码转换

    在 Python 中,有 2 种常用的字符串类型,分别为 str 和 bytes 类型,其中 str 用来表示 Unicode 字符,bytes 用来表示二进制数据。str 类型和 bytes 类型之间就需要使用 encode() 和 decode() 方法进行转换。

    Python encode()方法
    encode() 方法为字符串类型(str)提供的方法,用于将 str 类型转换成 bytes 类型,这个过程也称为“编码”。

    encode() 方法的语法格式如下:
    str.encode([encoding="utf-8"][,errors="strict"])

    注意,格式中用 [] 括起来的参数为可选参数,也就是说,在使用此方法时,可以使用 [] 中的参数,也可以不使用。

    参数               含义
    str               表示要进行转换的字符串。
    encoding = "utf-8"      指定进行编码时采用的字符编码,该选项默认采用 utf-8 编码。例如,如果想使用简体中文,可以设置 gb2312。
    
    当方法中只使用这一个参数时,可以省略前边的“encoding=”,直接写编码格式,例如 str.encode("UTF-8")。
    errors = "strict"    指定错误处理方式,其可选择值可以是:
    strict:遇到非法字符就抛出异常。
    ignore:忽略非法字符。
    replace:用“?”替换非法字符。
    xmlcharrefreplace:使用 xml 的字符引用。
    该参数的默认值为 strict。

    注意,使用 encode() 方法对原字符串进行编码,不会直接修改原字符串,如果想修改原字符串,需要重新赋值。

    Python decode()方法

    和 encode() 方法正好相反,decode() 方法用于将 bytes 类型的二进制数据转换为 str 类型,这个过程也称为“解码”。

    decode() 方法的语法格式如下:
    bytes.decode([encoding="utf-8"][,errors="strict"])

    参数             含义
    bytes            表示要进行转换的二进制数据。
    encoding="utf-8"      指定解码时采用的字符编码,默认采用 utf-8 格式。当方法中只使用这一个参数时,可以省略“encoding=”,直接写编码方式即可。
    
    注意,对 bytes 类型数据解码,要选择和当初编码时一样的格式。
    errors = "strict"    指定错误处理方式,其可选择值可以是:
    strict:遇到非法字符就抛出异常。
    ignore:忽略非法字符。
    replace:用“?”替换非法字符。
    xmlcharrefreplace:使用 xml 的字符引用。
    该参数的默认值为 strict。

    如果编码时采用的不是默认的 UTF-8 编码,则解码时要选择和编码时一样的格式。

    Python dir()和help()帮助函数

    用户查询文档,只需掌握如下两个帮助函数,即可查看 Python 中的所有函数(方法)以及它们的用法和功能:
    dir():列出指定类或模块包含的全部内容(包括函数、方法、类、变量等)。
    help():查看某个函数或方法的帮助文档。

    要查看字符串变量(它的类型是 str 类型)所能调用的全部内容

    查看某个方法的用法,则可使用 help() 函数。

    print(dir(str))
    ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

    上面列出了字符串类型(str)提供的所有方法,其中以“_”开头、“_”结尾的方法被约定成私有方法,不希望被外部直接调用。

  • 相关阅读:
    FFMPEG音视频基础问题和被面试问到的东西
    OpenGL学习
    FFMPEG起航之旅
    SurfaceView、TextureView对比和学习
    对文件拷贝、删除操作、对时间的计算以及转化
    音视频开发
    企业级Android应用架构设计与开发
    屏幕分辨率的适配&&开发文档的介绍
    设计模式的学习
    自定义Dialog的模版
  • 原文地址:https://www.cnblogs.com/daxionglaiba/p/11126351.html
Copyright © 2011-2022 走看看