• Python 字符串操作和函数


    字符串的相关操作

    (1) 字符串的拼接 +

    str1 = "我爱你"
    str2 = "亲爱的祖国"
    strvar = str1 + str2
    strvar = str1 + "," +str2
    print(strvar)
    

    (2) 字符串的重复 *

    strvar = "爱我中华
    "
    res = strvar * 3
    print(res)
    

    (3) 字符串的跨行拼接

    strvar = "sdfsdfssdfsdjfsjkdfsaudfuiousoadfjklsadf8s98adfsahdfsajkdfhsjkadfh" 
    "111222333444"
    print(strvar)
    

    (4)字符串的索引

    #          0 1 2 3 4 5 6 7 8 9    正向索引
    strvar = "站起来的人一共是6个"
    #        -10-9-8-7-6-5-4-3-2-1    逆向索引
    print(strvar[-6])
    

    (5)字符串的切片: 切片就是截取

    """
    语法 => 字符串[::]  完整格式:[开始索引:结束索引:间隔值]
    	(1)[开始索引:]  从开始索引截取到字符串的最后
    	(2)[:结束索引]  从开头截取到结束索引之前(结束索引-1)
    	(3)[开始索引:结束索引]  从开始索引截取到结束索引之前(结束索引-1)
    	(4)[开始索引:结束索引:间隔值]  从开始索引截取到结束索引之前按照指定的间隔截取字符
    	(5)[:]或[::]  截取所有字符串
    """
    

    5-(1)[开始索引:] 从开始索引截取到字符串的最后

    strvar = "好看的皮囊千篇一律,有趣的灵魂200多斤"
    res = strvar[5:]
    print(res)
    

    5-(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)

    最大值取不到,取到它之前的那个值
    strvar = "好看的皮囊千篇一律,有趣的灵魂200多斤"
    res = strvar[:9] # 8
    print(res)
    

    5-(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)

    strvar = "好看的皮囊千篇一律,有趣的灵魂200多斤"
    res = strvar[13:15]
    print(res)
    res = strvar[-7:-5]
    print(res)
    

    5-(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符

    strvar = "好看的皮囊千篇一律,有趣的灵魂200多斤"
    res = strvar[1:15:2]
    # 1 3 5 7 9 11 13 
    print(res) #看皮千一,趣灵
    res = strvar[::-1] #从开头到结束;
    print(res)
    # -1 -2 -3 -4 -5 -6 -7 -8 -9 ...
    

    5-(5)[:]或[::] 截取所有字符串

    res = strvar[:]
    res = strvar[::]
    print(res)
    

    字符串相关函数

    1)capitalize 字符串首字母大写

    strvar = "happy new year"
    res = strvar.capitalize()
    print(res)
    

    2)title 每个单词的首字母大写

    strvar = "happy new year"
    # 非字母隔开的单词,首字符大写
    strvar = "happy1new*year"
    res = strvar.title()
    print(res)
    

    3)upper 将所有字母变成大写

    strvar = " aaa BBB cCD"
    res = strvar.upper()
    print(res)
    

    4)lower 将所有字母变成小写

    strvar = " aaa BBB cCD"
    res = strvar.lower()
    print(res)
    

    5)swapcase 大小写互换

    strvar = " aaa BBB cCD"
    res = strvar.swapcase()
    print(res)
    

    6)len 计算字符串的长度

    strvar = " aaa BBB cCD"
    res = len(strvar)
    print(res)
    

    7)count 统计字符串中某个元素的数量

    strvar = "我爱你亲爱的菇凉"
    res = strvar.count("爱")
    print(res)
    

    8)find 查找某个字符串第一次出现的索引位置

    find("字符",start,end) end最大值取不到,取到它之前的那个数.
    strvar = "oh Father this is My Favorite boy"
    res = strvar.find("My")
    print(res)
    # 如果返回-1 , 代表找不到
    res = strvar.find("s",0,14)
    print(res)
    res = strvar.find("b",-5,-1)
    print(res)
    
    
    # *index 与 find 功能相同 find找不到返回-1,index找不到数据直接报错
    # res = strvar.index("b",0,3) error 
    # print(res)
    

    9)startswith 判断是否以某个字符或字符串为开头

    '''startswith("字符串",start,end)'''
    strvar = "oh Father this is My Favorite boy"
    res = strvar.startswith("ogg")
    print(res)
    res = strvar.startswith("Father",3,20)
    print(res)
    

    10)endswith 判断是否以某个字符或字符串结尾

    '''endswith("字符串",start,end)'''
    res = strvar.endswith("boy",-3)
    res = strvar.endswith("rite",-12,-4)
    print(res)
    

    11)isupper 判断字符串是否都是大写字母

    strvar = "GOOD GOOD STUDY"
    res = strvar.isupper()
    print(res)
    

    12)islower 判断字符串是否都是小写字母

    strvar = "day day up"
    res = strvar.islower()
    print(res)
    

    13)isalpha 判断字符串是否由字母和文字组成

    strvar = "sdfsdf中文121343"
    res = strvar.isalpha()
    print(res)
    

    14)isdigit 检测字符串数是数字组成 接受二进制字节流

    strvar = "121212uiu"
    res = strvar.isdigit()
    print(res)
    
    """
    二进制字节流( bytes ) b开头 b"323" 但是有一定的局限性 只能是ascii编码;
    功能用途: 用来传输或者存储用的
    
    
    字符串:有一个个字符组成
    字节流:有一个个字节组成
    
    encode decode 两个函数来对中文进行二进制字节流的转换;
    """
    strvar = b"@123"
    # strvar = b"你好" b开头的字符串,不能转换中文
    print(strvar,type(strvar))
    
    strvar = b"9998877"
    res = strvar.isdigit()
    print(res)
    

    15)isdecimal 检测字符串是否以数字组成 必须是纯数字

    strvar = "999887789"
    res = strvar.isdecimal()
    print(res)
    

    16)split 按某字符将字符串分割成列表(默认字符是空格)

    strvar = "you can you up no you no bb"
    lst = strvar.split() #默认分隔符是空格
    print(lst) 
    
    strvar = "you&can&you&up&no&you&no&bb"
    lst = strvar.split("&")
    # 可以选择分割的次数;
    lst = strvar.split("&",3)
    print(lst)
    
    # r => right
    strvar = "you&can&you&up&no&you&no&bb"
    lst = strvar.rsplit("&")
    lst = strvar.rsplit("&",2)
    print(lst)
    

    17)''.join 按某字符将列表拼接成字符串(容器类型都可)

    lst = ['you', 'can', 'you', 'up', 'no', 'you', 'no', 'bb']
    # join 前面是以什么样的符号进行拼接字符串;
    strvar = '^'.join(lst)
    print(strvar)
    

    18)center 填充字符串,原字符居中 (默认填充空格)

    strvar = "真好"
    # 10这个数字代表的是总长度 元字符长度 + 填充的长度= 10
    res = strvar.center(10)
    res = strvar.center(10,"@")
    print(res)
    

    19)strip 默认去掉首尾两边的空白符 ( 空格 )

    strvar = "   大家好  ?  	"
    res = strvar.strip()
    print(res)
    
    strvar = "@@学习@"
    res = strvar.strip("@")
    print(res)
    

    20)replace() 替换字符串

    strvar = "可爱的小狼狗喜欢吃肉,有没有,有没有,还有没有"
    res = strvar.replace("有没有","真没有")
    # 可以选择替换的次数
    res = strvar.replace("有没有","真没有",2)
    print(res)
    

    总结:

    *capitalize 字符串首字母大写 
    *title 每个单词的首字母大写 
    *upper 将所有字母变成大写
    *lower 将所有字母变成小写 
    *swapcase 大小写互换 
    *len 计算字符串的长度 
    *count 统计字符串中某个元素的数量 
    *find 查找某个字符串第一次出现的索引位置 
    *index 与 find 功能相同 find找不到返回-1,index找不到数据直接报错
    *startswith 判断是否以某个字符或字符串为开头 
    *endswith 判断是否以某个字符或字符串结尾 
    
    *isupper 判断字符串是否都是大写字母 
    *islower 判断字符串是否都是小写字母 
    #istitle 判断字符串是否每个单词都首字母大写 
    #isalnum 判断字符串是否是由数字、字母、汉字组成 
    *isalpha 判断字符串是否由字母和文字组成 
    *isdigit 检测字符串数是数字组成 接受二进制字节流 
    *isdecimal 检测字符串是否以数字组成  必须是纯数字
    #isnumeric 检测字符串是否以数字组成 接受中文"四"
    #isspace   判断字符串是否由空白符组成
    
    *split 按某字符将字符串分割成列表(默认字符是空格)
    *join  按某字符将列表拼接成字符串(容器类型都可)
    #splitlines 按换行来进行切分(
    )
    #zfill  填充字符串(默认填充0,原字符串右对齐)
    #ljust  填充字符串,原字符居左 (默认填充空格)
    #rjust  填充字符串,原字符居右 (默认填充空格)
    *center 填充字符串,原字符居中 (默认填充空格)
    *strip  默认去掉首尾两边的空白符 
    #rstrip 去掉右边某个字符 
    #lstrip 去掉左边某个字符 
    
    *replace()
    	功能:   把字符串的旧字符换成新字符
    	格式:   字符串.replace('旧字符','新字符'[, 限制替换的次数])
    	返回值: 替换之后的字符串
    
    #maketrans translate 是一对
    maketrans()
    	功能:   制作用于字符串替换的映射表
    	格式:   字符串.maketrans('查找字符','替换字符')两个字符必须长度相等
    	返回值: 字典
    translate()
    	功能:   进行字符串替换操作
    	格式:   字符串.translate(maketrans返回的字典)
    	返回值: 替换之后的字符串
    
  • 相关阅读:
    php安全模式笔记
    ./configure,make,make install的作用(转)
    composer自动载入类库的方式
    Specified key was too long; max key length is 1000 bytes
    海量数据中找出前k大数(topk问题)
    斐波那契数列n项的值。(递归和非递归算法Golang实现)
    基于Docker和Golang搭建Web服务器
    Nginx简单介绍以及linux下使用Nginx进行负载均衡的搭建
    php实现商城秒杀
    一致性hash (PHP)
  • 原文地址:https://www.cnblogs.com/CrownYP/p/11342679.html
Copyright © 2020-2023  润新知