Python基本数据类型之字符串

本文详细介绍了Python中的字符串,包括其性质(有序不可变)、分类(转义字符、原始字符串、一般字符串)、基本操作(拼接、重复、成员运算、比较大小等)以及字符串方法(如查找、大小写转换、切割、合并、替换等)。同时,还提到了字符串推导式及其应用。

变量类型之字符串

一、字符串的性质

  • 字符串是有序数据类型(存在下标)
  • 字符串是不可变数据类型(不存在增删改)
  • 字符串容器符号:引号括起来的内容,数据类型:str

二、字符串的分类

1.字符串又分为转义字符、原始字符串和一般字符串三种。
  • a) 转义字符串:C语言开始规定"反斜杠\ + ASCII某些特定的符号"能够展示出特殊的含义,Python延续了C语言的规定。

  • b) 常见的[转义字符串](Python3 字符串 | 菜鸟教程 (runoob.com))有:

    • \n:换行;\t:制表符;\:一个反斜杠;':一个单引号;":一个双引号。
      • 一个转义字符长度为1。
      • 反斜杠:在已经规定好的转义字符中,反斜杠是转义字符的标志,一个反斜杠添加到一个符号前,能够使其具有特殊含义,在这些转义字符前再添加一个反斜杠,能使其特殊含义消失
    print('abcd')
    print('ab\ncd')
    print('ab\tcd')
    print('abcd\\n')
    # 打印结果为:
    # abcd
    # ab
    # cd
    # ab	cd
    # abcd\n
    
  • c) 原始字符串

    • 在一个字符串前面添加r或者R,能够使所有具有特殊含义的字符失效。
    print('ab\ncd', len('ab\ncd'))
    print(r'ab\ncd', len(r'ab\ncd'))
    # 打印结果为:
    # ab
    # cd 5
    # ab\ncd 6
    
    • 应用场景:
      • 1.使路径(绝对路径、相对路径)中的可能出现的转义字符失效
      • 2.使正则表达式中某些转义字符失效

三、字符串的基本操作

1.字符串能实现拼接、重复、成员运算、比较大小等基本操作,其中比较大小还涉及到进制转换。
  • a) 字符串的拼接

    str1 = 'abcd'
    str2 = 'abde'
    str3='123456789'
    print(str1 + str2, str1, str2)
    print(str3 + '你好') 
    # abcdabde  abcd  abde
    # 123456789你好
    
  • b) 字符串的重复

    print('-' * 20)
    str='123456789'
    print(str * 2) 
    # --------------------
    # 123456789123456789
    
  • c) 字符串的成员运算(in、not in )

    str3 = 'abcde123'
    print('a' in str3)
    # print(1 in str3)    # TypeError: 'in <string>' requires string as left operand, not int
    print('1' in str3)
    print('123' in str3)
    print('ace' in str3)
    # 打印结果:True
    		  True
              True
              False
    
  • d) 字符串的比较大小运算

    • 字符串比较大小比较的是第一对不同元素的编码值大小
  • 其中涉及到ord()和chr()两种方法:

    • ord() :将单一符号转换为十进制整数。
    • chr() :将十进制数值转换为单一符号。
      • ASCII编码表:美国人订制,一共涉及到128个符号。
      • 英文字母:A-Z:65-90; a-z:97-122;
      • 数字:0-9:48-57;
    print('a' > 'A')
     print('abcd' > 'abce')
     
     print(ord('a'))
     print(chr(97))  
     # 打印结果是:True
     			False
     			97
     			a
    
2.字符串也能实现跟列表一样的通过下标找元素,切片等操作。
  • 字符串的切片也称索引,方法基本跟列表一样。

    str4='HelloPython'
     
    print(str4)                 # 输出字符串
    print(str4[0:-1])           # 输出第一个到倒数第二个的所有字符
    print(str4[0])              # 输出字符串第一个字符
    print(str4[2:5])            # 输出从第三个开始到第五个的字符
    print(str4[2:])             # 输出从第三个开始后的所有字符
    print(str4[1:5:2])          # 输出从第二个开始到第五个且每隔一个的字符(步长为2)
    print(str4[-1:-10:-1])		# 输出倒序的字符串
    print(str4[::-1])           # 输出倒序的字符串
    print(str4[::-3])			# 输出步长为3的倒序字符串
    
    # HelloPython
      HelloPytho
      H
      llo
      lloPython
      el
      nohtyPolleH
      nohtyPolleH
      ntoe
    
3.字符串的遍历也有两种
  • a) 直接遍历:for 循环遍历,for 变量 in 字符串:

  • b) 间接遍历:引入len方法,对字符串的下标进行操作。

    str1 = '123456789'
    # 1.直接遍历
    for i in str1:
        print(i)
    # 1 2 3 4 5 6 7 8 9    
        
    # 2.间接遍历
    for i in range(len(str1)):
        print(f'{i}-->{str1[i]}')
    # 0-->1
      1-->2
      2-->3
      3-->4
      4-->5
      5-->6
      6-->7
      7-->8
      8-->9
    

四、字符串的方法

1.字符串的方法有:
  • 查找:find、rfind。 index、rindex。
  • 大小写转换:upper、lower、title、capitalize。
  • 切割:split。
  • 合并:join
  • 替换:replace。
  • 去除两端符号:strip。
2.字符串的各种方法的应用
  • a) 查找

    • find、rfind查找

    • find -->从左向右查找,找到第一个出现的位置就停止查找。或者指定开始查找的位置找不到返回-1

      • rfind -->从右向左查找,查找某个字符在字符串中的位置,返回的也是正向下标。
      # find查找元素,返回对应下标
      str1 = 'abcd123a'
      print(str1.find('a'))
      print(str1.find('a', 1))
      print(str1.find('A'))
      # 0 7 -1
      
      # rfind查找元素
      print(str1.rfind('a'))
      print(str1.rfind('A'))
      # 7  -1
      
    • index、rindex查找

      • index–>从左向右查找元素,找到第一个出现的位置就停止查找。或者指定开始查找的位置。找不到报错
      • rindex–>从右向左查找元素,找到第一个出现的位置就停止查找。找不到报错
      # index查找元素
      str1 = 'abcd123a'
      print(str1.index('a'))
      print(str1.index('a', 1))
      print(str1.index('A'))
      # 0  
        7
        substring not found  找不到子字符串
      
      # rindex查找元素
      print(str1.rindex('a'))
      print(str1.rindex('A'))
      # 7
        substring not found  找不到子字符串
      
  • b) 大小写转换

    • upper:将字符串中所有的小写字母转大写。

      str2 = 'abc123def'
      print(str2.upper())
      # ABC123DEF
      
    • lower:将字符串中所有的大写字母转小写。

      print(str2.upper().lower())
      # abc123def
      
    • title:将字符串中每个单词的首字母大写。

      print(str2.title())
      # Abc123Def
      
    • capitalize:如果字符串的开头是小写字母,转大写。

      print(str2.capitalize())
      # Abc123def
      
  • c) 切割:split

    • split:切割,以字符串中某个符号作为切割点,将切割点左右两边的元素放入列表

      str3 = ',a,b,c,d,e,'
      strList = str3.split(',')
      print(strList)
      # ['', 'a', 'b', 'c', 'd', 'e', '']
      
  • d) 合并:join

    • join: 合并,以指定的连接符将一个字符串容器中所有元素连接。

      str4 = ','.join(strList)
      print(str4)
      # ,a,b,c,d,e,
      
  • e) 替换:replace

    • replace:replace(old,new) - 将字符串中所有的old子串替换成new字符串。

      print(str4.replace(',', ''))
      # abcde
      
    • replace:replace(old,new,count) - 将字符串中指定count个的old子串替换成new字符串。

      print(str4.replace(',', '', 2))
      # ab,c,d,e,
      
  • f) 去除两端符号:strip

    • strip: 默认将字符串两端的空白符号(空格、\t、\n、\v等)去除;还可以指定字符串两端要去除的符号。

      print(str4.strip(','))
      # a,b,c,d,e
      
3.字符串方法的补充
  • 看完字符串的这些方法是不是觉得不过瘾,字符串在python中内置的方法远远不止这些,若你想深入了解的话,请点击如下链接,带你一次看个够,Python字符串的内键函数方法

五、字符串推导式

  1. 字符串推导式和列表相似,不同的是字符串推导式一般是和 join 方法搭配在一起使用的。

  2. 字符串类型推导式,推导式里边的元素必须是字符串

  3. 字符串的形式,例如:

    s = "|"
    # 字符串.join表示将其他元素用符号合并。
    print(s.join(i for i in ['hello','world','lixin']))
    print(s.join(['hello','world','lixin']))
    print(s.join(str(i) for i in range(10) if i % 2 == 0))   #高级推导式if进行判断
    

  1. 字符串的形式,例如:

    s = "|"
    # 字符串.join表示将其他元素用符号合并。
    print(s.join(i for i in ['hello','world','lixin']))
    print(s.join(['hello','world','lixin']))
    print(s.join(str(i) for i in range(10) if i % 2 == 0))   #高级推导式if进行判断
    

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stiinput

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值