• 1.12 Python基础知识


      字符串是一个有序的字符集合,即字符序列。Pythpn内置数据类型str,用于字符串处理,使用单引号或双引号括起来的字符,就是字符常量,Python解释器会自动创建str型对象实例。

      字符串的定义:

      1、单引号:包含在单引号中的字符串,其中可以包含双引号

      2、双引号:包含在双引号中的字符串,其中可以包含单引号

      3、三单引号:包含在三单引号中的字符串,可以跨行

      4、三双引号:包含在三双引号中的字符串,可以跨行

      字符串的基本操作,包括索引访问、切片操作、成员关系操作、比较运算操作等。

    一、字符串类型判断 

    str.isalnum()   # 是否全为字母或数字
    str.isalpha()   # 是否全为字母
    str.isdecimal()     #是否只包含十进制数字字符
    str.isdigit()   #是否全数字(0-9)
    str.isidentifier()      #是否是合法标识
    str.islower()   #是否全小写
    str.isupper()   #是否全大写
    str.isnumeric()     #是否只包含数字字符
    str.isprintable()   #是否只包含可打印字
    str.isspace()   #是否只包含空白字
    str.istitle()   #是否为标题,即个单词首字母大写

    二、大小写转换

    str.capitalize()    #转换为首字母大写,其余小写
    str.lower()     #转换为小写
    str.upper()     #转换为大写
    str.swapcase()      #大小写互换
    str.title()     #转换为个单词首字母大写
    str.casefold()      #转换为大小写无关字符串比较的格式字符串

    三、填充、空白和对齐

    str.strip([chars])     #去掉两边空格,也可以指定要去除的字符列表
    str.lstrip([chars])     #去掉左边空格,也可以指定要去除的字符列表
    str.rstrip([chars])     #去掉右边空格,也可以指定要去除的字符列表
    str.zfill(width)     #左填充,使用0填充到width长度
    str.center(width[,fillchar])        #两边填充,使用填充字符fillchar(默认空格)填充到width长度
    str.ljust(width[,fillchar])     #左填充,使用填充字符fillchar(默认空格)填充到width长度
    str.rjust(width[,fillchar])     #右填充,使用填充字符fillchar(默认空格)填充到width长度
    str.expandtabs([tabsize])       #将字符串中的制表符(tab)扩展为若干个空格,tabsize默认为8

    四、测试、查找和替换

    str.startswith(prefix[,start[,end]])    #是否以prefix开头
    str.endswith(suffix[,start[,end]])    #是否以suffix开头
    str.count(sub[,start[,end]])        #返回指定字符串出现的次数
    str.index(sub[,start[,end]])       #搜索指定字符串,返回下标,无则导致ValueError
    str.rindex(sub[,start[,end]])       #从右边开始搜索指定字符串,返回下标,无则导致ValueError
    str.find(sub[,start[,end]])     #搜索指定的字符串,返回下标。没有则返回-1
    str.rfind(sub[,start[,end]])        #从右边开始搜索指定字符串,返回下标,没有则返回-1
    str.replace(old,new[,count])    #替换old为new,可选count为替换次数

    五、拆分和组合

    str.split(sep=None,maxsplit=-1)     #按指定字符(默认为空格)分隔字符串,返回列表。maxsplit为最大分隔次数,默认-1,无限制
    str.rsplit(sep=None,maxsplit=-1)     #从右侧按指定字符分隔字符串,返回列表
    str.partition(sep)      #根据分隔符sep分隔字符串为两部分,返回元组(left,sep,right)
    str.rpartition(sep)      #根据分隔符sep从右侧分隔字符串为两部分,返回元组(left,sep,right)
    str.splitlines([keepends])      #按行分隔字符串,返回列表
    str.join(iterable)      #组合iterable中的各元素成字符串,若包含非字符串元素,则导致TypeError

    六、翻译和转换

    str.maketrans(x[,y[,z]])    #创建用于translate的转换表
    str.translate(map)      #根据map转换
    table1 = str.maketrans('1234567','一二三四五六日')
    s1 = '1,3,4,9'
    print(s1.translate(table1))

    # 输出结果
    一,三,四,9

    七、字符串编码

      默认情况下,Python字符串采用utf-8编码。创建字符串时,也可以指定其编码方式:

      b.decode(encoding,errors)  #把字节码对象b解码为对应编码的字符串

      s.encode(encodeing = 'utf-8',errors="strict")  #把字符串对象s编码为字节码对象

      代码示例:

    # Author:Zhanghk
    
    s = 'Hello!中国!' # 字符串默认编码格式为utf-8
    
    e = s.encode(encoding='gbk')    # 我们将字符串s以“gbk”格式编码成“字节码”,并赋值给e
    print(s)
    print(e)
    d = e.decode(encoding='gbk')    # 我们将字节码e进行解码,并告知系统我们是以“gbk”格式编码的字节码
    print(d)
    
    # 输出结果
    
    Hello!中国!
    b'Hello!xd6xd0xb9xfaxa3xa1'
    Hello!中国!

      如果我们在解码时不进行指定原编码格式,会出现如下错误:

    Hello!中国!
    Traceback (most recent call last):
      File "E:/python/s14/字符串编码.py", line 10, in <module>
    b'Hello!xd6xd0xb9xfaxa3xa1'
        d1 = e.decode()    # 我们将字节码b进行解码,并告知系统我们是以“gbk”格式编码的
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd6 in position 6: invalid continuation byte

      错误内容如下:

      编码格式错误:‘utf-8’ 格式不能解码字节类型为 0xd6 开头的6个位置的字节码:无效的连续的字节

  • 相关阅读:
    怎样做一个合格的程序猿
    error: No resource identifier found for attribute &#39;format24Hour&#39; in package &#39;android&#39;
    【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群(第五步)(4)
    Length of last word--LeetCode
    SmartController智能控制系统
    湘潭-1203-A simple problem
    android中检測网络连接状态简单总结
    AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath的差别
    please set a system env PAODING_DIC_HOME or Config paoding.dic.home in paoding-dic-home.properties p
    与IBM的Lin Sun关于Istio 1.0和微服务的问答
  • 原文地址:https://www.cnblogs.com/topspeedking/p/6419511.html
Copyright © 2020-2023  润新知