Python-字符串

一、字符串基础

  1. 单引号和双引号都可以表示字符串

    str1='ABCDEFG' 
    str2="ABCDEFG"
    
  2. 当句子本身有单引号时,外面用双引号

    print("It's OK") 
    print("He said:"Hello."")#会报错
    
  3. 当句子本身有双引号时,外面用单引号

    print('He said:"Hello."')
    
  4. Python 中三引号可以将复杂的字符串进行赋值。

    Python 三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。

print('''春花秋月何时了
往事知多少
小楼昨夜又东风
故国不堪回首月明中
''')

运行结果如下:

春花秋月何时了
往事知多少
小楼昨夜又东风
故国不堪回首月明中


Process finished with exit code 0

二、字符串的操作

  1. 拼接字符串

    • 使用"+"可以对多个字符串进行拼接并产生一个字符串对象

      print('a'+'b')
      print(1+1)  #数字和数字之间可以进行算术运算
      print('1'+'1')  #字符串之间进行的是拼接,而不是算术运算
      print('a'+str(1))  #str()函数将参数转换为str型
      print(1+int('1'))  #int()函数将参数转换为int型
      print(1+float('1.2'))  #flat()函数将参数转换为float型
      print('a'*9)  #字符串可以和数字n相乘,表示打印n次
      

      运行结果如下:

      ab
      2
      11
      a1
      2
      2.2
      aaaaaaaaa
      
      Process finished with exit code 0
      
    • 字符串不允许直接与其他类型的数据拼接

      print('1'+1)  #字符串和数字不能拼接,会报错
      

      运行结果如下:

      Traceback (most recent call last):
        File "E:/PC/untitled/练习/test.py", line 105, in <module>
          print('1'+1)  #字符串和数字不能拼接,会报错
      TypeError: can only concatenate str (not "int") to str
      
      Process finished with exit code 1
      
    • 使用join()方法

      使用join()方法 对各种数据类型中元的素进行合并拼接

      “连接符”.join(列表或元组或字符串或字典)

      • 返回的是一个使用连接符进行拼接的字符串

      • 如果对象是列表,元组,就是以一个下标元素为单位进行拼接

      • 如果对象是字符串,就是一个单词元素为单位进行拼接

      • 如果对象是字典,就是以一个键为单位进行拼接

        列表:

        str1='你好'
        a = ["123", "123"]
        print(str1.join(a))
        

        运行结果如下:

        123你好123
        
        Process finished with exit code 0
        

        字典:

        str1='你好'
        a = {"name":"张三","age":20}
        print(str1.join(a))
        

        运行结果如下:

        name你好age
        
        Process finished with exit code 0
        

        元组:

        str1='你好'
        a = ("张三","李四","王五")
        print(str1.join(a))
        print("".join(a))
        

        运行结果如下:

        张三你好李四你好王五
        张三李四王五
        
        Process finished with exit code 0
        

        字符串:

        str1='你好张三'
        a = 'abc'
        print(a.join(str1))
        print('+'.join(str1))
        

        运行结果如下:

        你abc好abc张abc三
        你+好+张+三
        
        Process finished with exit code 0
        
    • Python转义字符

      #转义符   \n 换行符,\t 横向制表符,\v 纵向制表符,\r 回车,\f 换页
      # print('c:\note1.txt')  #这样打印的结果不符合预期
      #解决方案 1
      # print('c:\\note1.txt')  #在\前面再加一个\,表示后面的\没有特殊含义
      #解决方案 2
      # print(r'c:\note1.txt')  #在字符串的外面加一个r,表示后面的字符串不使用转义符
      #解决方案 3
      # print('c:/note1.txt')  #在python中,/也可以表示路径
      

      运行结果:

      c:
      ote1.txt
      c:\note1.txt
      c:\note1.txt
      c:/note1.txt
      
      Process finished with exit code 0
      
  2. 字符串的长度

    • 在Python中,数字、英文、小数点、下划线和空格各占一个字节

    • 一个汉字所占字节由采用的编码决定;在GBK/GB2312编码中占2个字节;在UTF-8/unicode编码中占用3个字节(或4个字节)

      Python默认的UTF-8编码下:

      str1 = "人生苦短,我学Python!"
      #len(string)计算字符串的长度
      print(len(str1)) #14
      length=len(str1.encode()) #计算UTF-8编码的字符串的长度
      print(length) #28
      

      使用GBK编码的长度:

      str1 = "人生苦短,我学Python!"
      length=len(str1.encode('gbk'))#计算GBK编码的字符串的长度
      print(length)  #21
      
  3. 截取字符串

    • 字符串的下标
	 str2='ABCDEFG'
     # print(str2[2])  #python中的下标,是从0开始算起
     #字符串属于不可变对象,不能修改其中的值
     # str2[2]='G'  #这样会报错
     #打印最后一位,可以用负数下标
     # print(str2[-3])  #打印倒数第三位
     # print(str2[100])  #下标的值如果超过了切片的最大长度,则会报错
  • 字符串的切片

    string[start🔚step]

    参数说明:

    string:表示要截取的字符串

    start:表示要截取的第一个字符的索引(包含该字符),默认值为0

    end:表示要截取的最后一个字符的索引(不包含该字符),默认为字符串的长度

    step:表示切片的步长,如果省略,默认为1。当步长省略时,最后一个冒号也可以省略

    #切片的基础写法[起始值:终止值],包含起始值,不包含终止值
    str2='ABCDEFG'
    # print(str2[2:4])  #取到的是CD
    # print(str2[4:100])  #当切片的终止值超过了切片的长度时,就会从起始值开始,将剩余的值全部取得
    # print(str2[4:])  #终止值不写时,也表示从开始值往后全取
    # print(str2[:])   #起始值和终止值都不写时,表示全取
    #切片可以加上步长,写法[起始值:终止值:步长],当不写步长时,步长默认为1,当步长为负数时,表示倒着取值
    # print(str2[::2])  #ACEG
    # print(str2[::-1])  #GFEDCBA
    #print(str2[7::-1])  #如果起始值大于终止值,那么步长必须为负数才能取到值
    
  1. 切割字符串

    str.split(sep,maxsplit) 把字符串分割成列表

    参数说明:

    返回值:分割后的字符串列表

    str:要进行切割的字符串

    sep:用于指定的分割符,可以包含多个字符,默认是None,即所有空字符(包含空格、换行"\n"、制表符"\t"等)。

    maxsplit:可选参数,用于指定分割的次数,如果不指定或者为-1,则分割次数无限制,否则返回结果列表的元素个数最多为maxsplit+1。

    str1="百 度 网 站 官 网  >>>  www.baidu.com"
    print("原字符串:",str1)  
    list1=str1.split()              #使用默认分隔符进行分割
    list2=str1.split('>>>')         #使用多个字符符进行分割
    list3=str1.split('.')           #使用"."浩进行分割
    list4=str1.split(' ',4)         #使用空格进行分割,只分割前4个
    list5=str1.split('>')           #使用>进行分割
    print(str(list1)+'\n'+str(list2)+'\n'+str(list3)+'\n'+str(list4)+'\n'+str(list5))
    

    运行结果如下:

    原字符串: 百 度 网 站 官 网  >>>  www.baidu.com
    ['百', '度', '网', '站', '官', '网', '>>>', 'www.baidu.com']
    ['百 度 网 站 官 网  ', '  www.baidu.com']
    ['百 度 网 站 官 网  >>>  www', 'baidu', 'com']
    ['百', '度', '网', '站', '官 网  >>>  www.baidu.com']
    ['百 度 网 站 官 网  ', '', '', '  www.baidu.com']
    
  2. 检索字符串

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

      语法如下:

      str.count(sub[, start[, end]])

      sub:表示要检索的子字符串

      start:可选参数,表示检索范围的起始位置索引,如果不指定,则从头开始

      end:可选参数,表示检索范围的结束位置索引,如果不指定,则检索到结尾

      str1="百 度 网 站 官 网  >>>  www.baidu.com"
      print(str1.count('>>>')) 	#1
      print(str1.count(' '))		#9
      print(str1.count('com'))	#1
      
    • find()方法

      该方法用于检索是否包含指定的子字符串。如果检索的字符串不存在,则返回-1,否则返回首次出现该字符串时的索引。

      str.find(sub[, start[, end]])

      参数说明:

      sub:表示要检索的子字符串

      start:可选参数,表示检索范围的起始位置索引,如果不指定,则从头开始

      end:可选参数,表示检索范围的结束位置索引,如果不指定,则检索到结尾

      str1="百度网站官网>>>www.baidu.com"
      print(str1.find(' '))		#-1
      print(str1.find('com'))		#19
      

      如果只判断字符串是否存在,可以使用in关键字实现。

      或者根据find()方法返回的值是否大于-1来确定是否存在。

    • rfind()方法 返回字符串最后一次出现的位置(返回在字符串中找到子字符串sub的最高索引),如果没有匹配项则返回-1。

      str = "this is really a string example....wow!!!";
      substr = "is";
      
      print(str.rfind(substr))
      print(str.rfind(substr, 0, 10))
      print(str.rfind(substr, 10, 0))
      

      运行结果如下:

      5
      5
      -1
      
      Process finished with exit code 0
      
    • index()方法

      str.index(sub[, start[, end]])

      index()方法与find()类似,只不过当指定检索的字符串不存在时,会抛出异常。

    • rindex()方法

      str.rindex(sub[, start[, end]])

      与rfind()方法类似

      rindex() 返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常

  3. 字符串去空格

    • strip()方法

      用于去掉字符串左、右两边的空格和特殊字符

      str.strip(chars)

      参数说明:

      chars:可选参数,用于指定要去除的字符,如果不指定时,默认去除空格、制表符\t、回车符\r、换行符\n等。

      str3=' A  B  C  D  E   F    G ' \
           'H'
      print(str3.strip())
      str3_1='*******ABCD***EFG*********'
      print(str3_1.strip('*'))
      

      运行结果如下:

      A  B  C  D  E   F    G H
      ABCD***EFG
      
      Process finished with exit code 0
      
    • lstrip()方法

      用于去除字符串左侧的空格和特殊字符,用法于strip()方法类似。

    • rstrip()方法

      用于去除字符串右侧的空格和特殊字符,用法于strip()方法类似。

  4. 字符串替换

    replace()方法

    语法如下:

    str.replace(old,new[,max])

    参数:

    old:被替换的子字符串

    new:新字符串,用于 替换old子字符串。

    max:可选参数,替换的个数。不指定时默认全部替换(-1表示替换全部)

    str = "this is str is ng is example....wow!!!"
    print (str.replace("is", "was"))
    print (str.replace("is", "was", 3))
    print (str.replace("is", "was", -1))
    

    运行结果如下:

    thwas was str was ng was example....wow!!!
    thwas was str was ng is example....wow!!!
    thwas was str was ng was example....wow!!!
    
    Process finished with exit code 0
    

三、Python字符串中内置函数

方法描述
string.capitalize()把字符串的第一个字符大写
string.endswith(obj, beg=0, end=len(string))检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
string.isalnum()isalnum() 方法检测字符串是否由字母和数字组成。
string.isalpha()方法检测字符串是否只由字母或文字组成。
string.isdecimal()检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。
string.isdigit()检查字符串是否只包含数字则返回 True 否则返回 False.
string.islower()检测字符串是否由小写字母组成
string.isspace()检测字符串中只包含空格,是则返回 True,否则返回 False
string.isupper()检测字符串中所有的字母是否都为大写。
string.lower()转换字符串中所有大写字符为小写.
max(str)返回字符串 str 中最大的字母.
min(str)返回字符串 str 中最小的字母。
string.startswith(obj, beg=0,end=len(string))检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.
string.swapcase()翻转字符串中的大小写.
string.upper()转换字符串中的小写字母为大写.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

凡晨丹心

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

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

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

打赏作者

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

抵扣说明:

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

余额充值