美文网首页Python知识锦集
Python基础知识9: 字符串

Python基础知识9: 字符串

作者: IIronMan | 来源:发表于2018-11-07 22:51 被阅读4次

    一、字符串的定义

    • 1.1、字符串 就是 一串字符,是编程语言中 表示文本的数据类型

    • 1.2、在 Python 中可以使用一对双引号 "或者一对单引号 ' 定义一个字符串(推荐使用双引号 ",因为绝大多数的语言字符串都是用双引号)

      • 如果字符串内部需要使用 ",可以使用 '定义字符串
      • 如果字符串内部需要使用 ',可以使用 "定义字符串
    • 1.3、 可以使用 索引 获取一个字符串 中 指定位置的字符,索引的计数从 0 开始

      string = "hello Python"
      print(string[1])
      
    • 1.4、也可以使用 for 循环遍历 字符串中每一个字符

      string = "hello Python"
      for c in string:
            print(c)
      

    二、字符串的常用操作

    • 2.1、统计字符串的长度

      string = "hello Python"
      print(len(string))
      打印结果是:12
      
    • 2.2、统计一个字符或者字符串在另外一个字符串里面出现的次数

      string = "hello Python"
      print(string.count("o"))
      打印结果是:2
      
    • 2.3、某一个子字符串在大字符串中第一次出现的索引,如果在另外一个字符串(大字符串)里面不存在就会报错

      string = "hello Python"
      print(string.index("P"))
      打印结果是:6
      print(string.index("p"))  # 报错
      

    三、字符串的方法分类

    • 3.1、判断类型(9个)

      方法 说明
      string.isspace() 如果 string 中只包含空字符串(\t、\r、\n),则返回 True
      string.isalnum() 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True
      string.isalpha() 如果string 至少有一个字符并且所有字符都是字母则返回True
      string.isdecimal() 如果string 只包含数字则返回 true,全角数字(也就是阿拉伯数字:1234)
      string.isdigit() 如果 string 只包含数字则返回True,(1),\u00b2
      string.isnumeric() 如果string 只包含数字则返回True,全角数字,汉字数字
      string.istitle() 如果 string 是标题华的(每个单词的首字母大写)则返回 True
      string.islower() 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True
      string.isupper() 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True
      • 简单举例(1): 判断string 中只包含空字符串,(\t: 垂直对齐、\r: 回车、\n: 换行)也是空字符

        stringSpace = "     \t"
        print(stringSpace.isspace())
        打印结果是
        True
        
      • 简单举例(2): 判断string 至少有一个字符并且所有字符都是字母或数字则返回 True

        string = "123,PPP"
        print(string.isspace())
        打印结果是
        False
        
      • 简单举例(3): 判断数字的三个方法:string.isdecimal(),string.isdigit(),string.isnumeric(),判断的范围是逐渐扩大

        • 第一点:三个方法都不可以判断小数

          number_str = "1.3"
          
          print(number_str.isdecimal())
          print(number_str.isdigit())
          print(number_str.isnumeric())
          打印结果是:
          False
          False
          False
          
        • 第二点:isdecimal()只可以判断全角数字,也就是只能判断阿拉伯数字:1234567......

        • 第三点:isdigit()在isdecimal()的基础上还可以判断 unicode 字符串

        • 第四点:isnumeric()在isdigit()的基础上还可以判断 中文字符,如: 一二三四百千万

    • 3.2、查找和替换(7个)

      方法 说明
      string.startswith(str) 检查字符串是否是以 str开头,是则返回 True
      string.endswith(str) 检查字符串是否是以 str结束,是则返回 True
      string.find(str,start=0,end=len(string)) 检测 str 是否包含在 string 中,如果是 start 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回 -1
      string.rfind(str,start=0,end=len(string)) 类似于 find() 函数,不过是从右边开始查找
      string.index(str,start=0,end=len(string)) 跟 find() 方法类似,不过如果 str 不在 string 会报错
      string.rindex(str,start=0,end=len(string)) 类似于 index() 函数,不过是从右边开始
      string.replace(old_str,new_str=0,num=string.count(old)) 把string 中的old_str 替换成 new_str,如果 num 指定,则替换不超过 num 次
      • 简单举例(1): 检查字符串是否是以 str开头,是则返回 True

        string= "str I Love You !"
        print(string.startswith("str"))
        打印结果是:
        True
        
    • 3.3、大小写转换(5个)

      方法 说明
      string.capitalize() 把字符串的第一个字符大写
      string.title() 把字符串的每个单词首字母大写
      string.lower() 转换 string 中 所有大写字符为小写
      string.upper() 转换 string 中 所有小写字母为大写
      string.swapcase() 翻转 string 中的大小写
      • 简单举例(1): 把字符串的每个单词首字母大写(每个单词之间有空格才代表一个单词)

        string = "str i love you !"
        print(string.title())
        打印结果是:
        Str I Love You !
        
    • 3.4、文本对齐(3个),记得输入一个字符串的宽度

      方法 说明
      string.ljust(width) 返回一个字符串左对齐,并使用空格填充至长度 width 的新字符串
      string.rjust(width) 返回一个字符串右对齐,并使用空格填充至长度 width 的新字符串
      string.center(width) 返回一个字符串居中,并使用空格填充至长度 width 的新字符串
      • 简单举例(1):返回一个字符串居中,并使用空格填充至长度 width 的新字符串

        string = "    str i love you !I want to play      "
        print(string.center(10)) 
        #  如果想要英文也对齐,那么就要增加 中文空格: 
        # print(string.center(10," "))
        打印结果是:
             str i love you !I want to play    
        
    • 3.5、去除空白字符(3个)

      方法 说明
      string.lstrip() 截掉 string 左边 (开始) 的空白字符
      string.rstrip() 截掉 string 右边 (末尾) 的空白字符
      string.strip() 截掉 string 左右两边的空白字符
    • 3.6、拆分和连接(5个)

      方法 说明
      string.partition(str) 把字符串 string 分成一个 3 元素的元组(str前面,str,str后面) 返回值是:元组
      string.rpartition(str) 类似于 partition() 函数,不过是从右边开始查找 返回值是:元组
      string.split(str,num) 以 str 为分隔符切片string ,如果 num 有指定值,则仅分割 num + 1 个字符串,str 默认包含 \r,\t,\n 和 空格,返回值是列表
      string.splitlines() 按照行(\r,\t,\n)分割,返回一个包含各行作为元素的列表
      string.join(seq) 以string 作为 分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
      • 简单举例(1):以 str 为分隔符切片string ,如果 num 有指定值,则仅分割 num + 1 个字符串,str 默认包含 \r,\t,\n 和 空格,返回值是列表

        string  = "str i love you y!I want to play"
        print(string.split("y",1)) # 代表分割成的列表是 `2+1` 个元素
        打印结果是:
        ['str i love ', 'ou y!I want to play']
        print(string.split("y",2)) # 代表分割成的列表是 `2+1` 个元素
        打印结果是:
        ['str i love ', 'ou ', '!I want to play']
        

    四、字符串的切片

    • 4.1、 切片 方法 适用于 字符串列表元组

      • 切片 使用 索引值 来限定范围,从一个大的 字符串 中 切出 小的 字符串
      • 列表 和 元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
      • 字典 是一个 无序的集合,是使用 键值对 保存数据


        切片图
      • 字符串[开始索引:结束索引:步长]
      • 注意:
        • 指定区间属于 左闭右开型 :从起始 位开始,到 结束 位的前一位 结束 (不包含结束位本身)
        • 从头开始,开始索引 数字可以省略,冒号不能省略
        • 到末尾结束,结束索引 数字可以省略,冒号不能省略
        • 步长默认为 1,如果连续切片,数字和冒号都可以省略
    • 4.2、看下面的几个例子练习
      最初的字符串都是 string = "Hi boy,I Love You"

      • 截取从 2~5 位置的字符串(因为是右边是开区间,所以要写到第6位)

        print(string[2:6]) # 因为步长为 1,后面的 :1 可以省略
        
      • 截取从 2~末尾 的字符串

        print(string[2:]) 
        
      • 截取从 开始~5 位置的字符串

        print(string[0:6]) 
        
      • 截取完整的字符串

        print(string[:]) 
        
      • 从开始位置,每隔一个字符串截取字符串( 步长一看就是 2)

        print(string[::2]) 
        
      • 从索引 1 开始,每隔一个取一个

        print(string[1::2]) 
        
      • 截取从 2~末尾-1 的字符串

        print(string[2:-1]) 
        
      • 截取字符串末尾两个字符

        print(string[-2:]) # 因为步长为 1,后面的 :1 可以省略
        
      • 字符串的逆序

        print(string[::-1])
        print(string[-1::-1]) 
        

    相关文章

      网友评论

        本文标题:Python基础知识9: 字符串

        本文链接:https://www.haomeiwen.com/subject/sctmxqtx.html