• str类型内置方法


    str类型内置方法

    用途

    字符串数字、字母、下划线组成的一串字符,主要是用来描述一些类似于名字,爱好……

    定义方式

    在单引号、双引号、三单/双引号之间

    name1 = 'hades'  # 单引号
    
    name2 = "bonnie"  # 双引号
    
    name3 = '''hades and bonnie'''  # 三单引号
    
    name4 = """hades + bonnie"""  # 三双引号
    
    print(name1)
    
    print(name2)
    
    print(name3)
    
    print(name4)
    
    hades
    bonnie
    hades and bonnie
    hades + bonnie
    

    常用操作和内置方法

    优先掌握

    按索引取值

    hades_info = "hades's weight is 125,height is 168 and he likes reading"
    #             0123456789……     索引序号
    
    print(hades_info[3])    # 正值从左往右数
    print(hades_info[-3])    # 负值从右往左数
    
    e
    i
    

    切片

    语法:

    • print(str[起始索引:终止索引:步长])
    • 同样的顾头不顾尾
    hades_info = "hades's weight is 125,height is 168 and he likes reading"
    print(hades_info[:])
    print(hades_info[8:14])
    print(hades_info[5:17:2])   # 如果起始索引 < 终止索引,则步长为正,默认值为1
    print(hades_info[-7:-1:1]) 
    print(hades_info[-1:-7]+ '打印不了')    # **如果起始索引 > 终止索引,则步长一定需要设置且必须为负值,否则不会打印
    print(hades_info[-1:-7:-1])  
    
    hades's weight is 125,height is 168 and he likes reading
    weight
    ' egti
    readin
    打印不了
    gnidae
    

    注意:字符串里的空格也是一个字符

    长度len

    语法:

    • len(str)
    hades_info = "hades's weight is 125,height is 168 and he likes reading"
    print(len(hades_info))
    
    56
    

    成员运算in|not in

    语法:

    • print(str1 in str)
    • print(str2 not in str)
    hades_info = "hades's weight is 125,height is 168 and he likes reading"
    print('hades'in hades_info)
    print('girl'in hades_info)      # 这是进行判断,所打印bool值
    
    True
    False
    

    移除空白strip

    语法:

    • str.strip('str1')
    • 只能移除两端的str1,字符串中间的str1不能移除,默认值为空格
    string = '  a    abcd     a   '
    print(string)
    print(string.strip())
    string = 'aaaa    abcd     aa'
    string1 =  ' aaaa    abcd     aa'
    print(string.strip('a'))
    print(string1.strip('a'))
    
      a    abcd     a   
    a    abcd     a
        abcd     
     aaaa    abcd     
    

    切分split

    语法:

    • str.spilt(sep,maxsplit):从左往右切分
    • sep表示切分点,一般默认为空格
    • maxsplit表示切的份数,默认为最大切分数
    hades_info = "hades's weight is 125,height is 168 and he likes reading"
    print(hades_info.split())
    print(hades_info.split('s'))   #  以's'为切分点,即遇到's'就切
    print(hades_info.split('s',3))  # 这个切了3次
    
    ["hades's", 'weight', 'is', '125,height', 'is', '168', 'and', 'he', 'likes', 'reading']
    ['hade', "'", ' weight i', ' 125,height i', ' 168 and he like', ' reading']
    ['hade', "'", ' weight i', ' 125,height is 168 and he likes reading']
    

    循环

    string = 'abcd f'
    for i in string:
        print(i)      # pay attention 空格也是一个字符哦
    
    a
    b
    c
    d
     
    f
    

    需要掌握

    lstrip&rstrip

    语法&定义:用法和strip一样

    1. str.lstrip('str1'):移除str字符串左边str1
    2. str.rstrip('str2'):移除str字符串右边str2
    string = '    a    abcd     a   '
    print(string)
    print(string.lstrip())
    print(string.rstrip())
    
        a    abcd     a   
    a    abcd     a   
        a    abcd     a
    

    lower & upper

    语法&定义:

    1. str.lower():将字符串中的字母全部转换成小写
    2. str.upper():将字符串中的字母全部转换成大写
    string = 'a  246 ABcd  %   G   '
    print(string.lower())
    print(string.upper())
    
    a  246 abcd  %   g   
    A  246 ABCD  %   G   
    

    startswith & endswith

    语法&定义:

    1. str.startswith(str1,start,end):检查字符串的子字符串(从第start元素到第end元素)开头是否以str1字符串开头
    2. str.endswith(str2,start,end):检查字符串的子字符串(从第start元素到第end元素)结尾是否以str2字符串结尾
    str = "this is string example....wow!!!";
    print(str.startswith( 'this' ))
    print(str.startswith( 'is', 2, 4 ))
    print(str.startswith( 'this', 2, 4 ))
    
    True
    True
    False
    

    rsplit

    语法&定义:用法和split一样

    • str.rsplit('str1'):从右往左切分
    hades_info = "hades's weight is 125,height is 168 and he likes reading"
    print(hades_info.rsplit('s',3))  # 以's'为切分点,从右往左切了3次
    
    ["hades's weight i", ' 125,height i', ' 168 and he like', ' reading']
    

    join

    语法&定义:

    • str.join(list):将列表通过str串成一个字符串
    alph_list = ['a','b','c','d']
    str = ' > > '
    print(str.join(alph_list))
    print(type(str.join(alph_list)))
    
    a > > b > > c > > d
    <class 'str'>
    

    注意:数据类型不可和字符串拼接

    alph_list = ['a','b',3,'d']
    str = ' > > '
    print(str.join(alph_list))    # 报错
    
    ---------------------------------------------------------------------------
    
    TypeError                                 Traceback (most recent call last)
    
    <ipython-input-56-c81183775983> in <module>
          1 alph_list = ['a','b',3,'d']
          2 str = ' > > '
    ----> 3 print(str.join(alph_list))    # 报错
    
    
    TypeError: sequence item 2: expected str instance, int found
    

    replace()

    语法&定义:

    • str.replace(str1,str2):将字符串str中的子字符串str1替换成str2
    hades_info = "hades's weight is 125,height is 168 and he likes reading"
    print(hades_info.replace('is','是'))
    
    hades's weight 是 125,height 是 168 and he likes reading
    

    isdigit()

    语法&定义:

    • str.isdigit():判断字符串str里的值是否是整型,得到的值是bool类型
    str1 = '234'
    str2 = ' 234'
    print(str1.isdigit())    
    print(str2.isdigit())   
    
    True
    False
    

    了解

    1. find|rfind|index|rindex|count

    语法&定义:

    • str.find(str1):从左往右寻找str字符串中的某个子字符串str1,True则返回字符串的索引值,False则返回-1
    • str.rfind(str1):从右往左寻找str字符串中的某个子字符串str1,True则返回字符串的索引值,False则返回-1
    • str.index(str1):从左往右寻找str字符串中的某个子字符串str1,True则返回字符串的索引值,False则报错
    • str.rindex(str1):从右往左寻找str字符串中的某个子字符串str1,True则返回字符串的索引值,False则报错
    • str.count(str1):从str字符串中寻找某个子字符串str1的个数
    str = 'abcdeafghijklmn'
    print(str.find('b'),str.find('r'))
    print(str.rfind('a'),str.rfind('r'))
    print(str.index('k'),str.rindex('b'))
    print(str.count('a'),str.count('r'))
    
    1 -1
    5 -1
    11 1
    2 0
    
    1. center|ljust|rjust|zfill

    语法&定义:

    • str.center(width,str1):返回str居,并使用str1填充至长度 width 的新字符串,默认填充字符为空格
    • str.ljust(width,str1)):返回str居,并使用str1填充至长度 width 的新字符串,默认填充字符为空格
    • str.rjust(width,str1):返回str居,并使用str1填充至长度 width 的新字符串,默认填充字符为空格
    • str.zfill(width):返回str居,并使用0填充至长度 width 的新字符串
    str = 'hades'
    print(str.center(20,'*'))
    print(str.ljust(20,'-'))
    print(str.rjust(20,'$'))
    print(str.zfill(20))
    
    *******hades********
    hades---------------
    $$$$$$$$$$$$$$$hades
    000000000000000hades
    
    1. expandtabs()

    语法&定义:

    • 'a bc e'.expandtabs():在字符串'abce'中插入 的位置添加空格,默认为8个空格
    print('a	bc	e'.expandtabs())
    print('a	bc	e'.expandtabs(4))
    
    a       bc      e
    a   bc  e
    
    1. captalize()、swapcase()、title()

    语法&定义:

    • str.capitalize():将字符串str的第一个字母转换为大写,其余的全部小写
    • str.swapcase():将字符串str的字母大小写互换
    • str.title():将每一个单词的首字母大写,其余字母小写
    str = 'ab CDEfg hiJK,Lmn'
    print(str.capitalize())
    print(str.swapcase())
    print(str.title())
    
    Ab cdefg hijk,lmn
    AB cdeFG HIjk,lMN
    Ab Cdefg Hijk,Lmn
    
    1. is数字系列
    • isdecimal(): 检查字符串是否值包含十进制字符,如果是返回True,否则返回False
    • isdigit(): 如果字符串只包含数字,则返回True,否则返回False
    • isnumeric(): 如果字符串中只包含数字字符,则返回True,否则返回False
    1. is其他
    • isalnum(): 如果字符串至少有一个字符并且所有字符都是字母或数字,则返回True,否则返回False
    • isalpha(): 如果字符串至少有一个字符并且所有字符都是字母,则返回True,否则返回False
    • islower(): 如果字符串中只包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True,否则返回False
    • isspace(): 如果字符串中只包含空白,则返回True,否则返回False
    • isupper(): 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True,否则返回False
    • istitle(): 如果字符串是标题类型的,则返回True,否则返回False

    存一个值or多个值

    • 一个值

    有序or无序

    • 有索引,所以是有序的

    可变or不可变

    • 不可变数据类型

    强化训练

    `1. 写代码,有如下变量(name = " aleX"),请按照要求实现每个功能:

    1. 移除 name 变量对应的值两边的空格,并输出处理结果
    2. 判断 name 变量对应的值是否以 "al" 开头,并输出结果
    3. 判断 name 变量对应的值是否以 "X" 结尾,并输出结果
    4. 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
    5. 将 name 变量对应的值根据 “l” 分割,并输出结果。
    6. 将 name 变量对应的值变大写,并输出结果
    7. 将 name 变量对应的值变小写,并输出结果
    8. 请输出 name 变量对应的值的第 2 个字符?
    9. 请输出 name 变量对应的值的前 3 个字符?
    10. 请输出 name 变量对应的值的后 2 个字符?
    11. 请输出 name 变量对应的值中 “e” 所在索引位置?
    12. 获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo`
    name = ' aleX'
    print(f"1.{name.strip()}")
    print(f"2.{name.startswith('al')}")
    print(f"3.{name.endswith('X')}")
    print(f"4.{name.replace('l','p')}")
    print(f"5.{name.split('l')}")
    print(f"6.{name.upper()}")
    print(f"7.{name.lower()}")
    print(f"8.{name[1]}")
    print(f"9.{name[:3]}")
    print(f"10.{name[-2:]}")
    print(f"11.{name.index('e')}")
    print(f"12.{name[:-1]}")
    
    1.aleX
    2.False
    3.True
    4. apeX
    5.[' a', 'eX']
    6. ALEX
    7. alex
    8.a
    9. al
    10.eX
    11.3
    12. ale
  • 相关阅读:
    SQL 语法总结
    终于开始用github了
    前端开发第一阶段总结
    windows系统快捷操作の高级篇
    windows系统快捷操作の进阶篇
    windows系统快捷操作の基础篇
    安装使用ubuntu问题汇总
    十进制转任意进制
    任意进制转10进制
    爬取妹子图(requests + BeautifulSoup)
  • 原文地址:https://www.cnblogs.com/Hades123/p/10828047.html
Copyright © 2020-2023  润新知