• PY基础之字符串类型内置方法


    PY基础之字符串类型内置方法

    用途:

    描述性质的东西,如人的名字、单个爱好、地址、国家等

    定义:

    使用''、""、''''''、""""""包裹的的一串字符

    • u'unicode': unicode编码的字符串
    • b'101': 二进制编码的字符串
    • r' ': 原生字符串,也就是说' '这是普通的两个字符,并没有换行的意思

    常用操作+内置方法

    重要

    按索引取值,切片(只可取不可改变,顾头不顾尾)

    str = 'nick ugly'
    print(str[1]) # 'i'
    print(str[1:3]) # 'ic'
    print(str[:4]) # 'nick'
    print(str[-4:]) # 'ugly'
    print(str[::-1]) # 'ylgu kcin'
    print(str[1:-2]) # 'ick ug'
    print(str[1:-1:2]) # ikul
    

    长度len

    取字符串长度

    str = 'nick ugly'
    print(len(str)) # 9
    

    成员运算in|not in

    msg = 'my name is nick, nick handsome'
    
    print('nick' in msg) # True
    print('jason' not in msg) # True
    print(not 'jason' in msg) # True
    

    移除空白strip

    s1 = '      nick handsome         '
    print(s1.strip())  # 去两端的空白
    
    s2 = '***!!!!!nick handsome----***'
    print(s2.strip('-*!'))  # 指定多个字符一起去掉,只要strip里面有的字符就全部干掉
    print(s2.strip('nick'))  # 指定多个字符一起去掉,只要strip里面有的字符就全部干掉
    # 首先判断字符串s的两端字符,为*,再去strip里找有没有*,有就去掉,再去判断字符串s的两端字符,!-,再从strip里面找,有去掉,没有则停止
    

    strip实例

    # 给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词
    s = ["Hello", "Alaska", "Dad", "Peace"]
    lis = []
    for i in s:
        ls = i.lower()
        if ls.strip('qwertyuiop') == '' or ls.strip('asdfghjkl') == '' or ls.strip('zxcvbnm') == '':
            lis.append(i)
    print(li
    

    切分split

    s = '***!!!!!nick handsome----***'
    print(s.split())  # 默认以空格切割字符串
    print(s.split('!'))  # 以!切割
    print(s.split('!', 2)) # 指定切割两次
    

    循环

    s = 'nick ugly'
    for i in s:   # for 循环遍历s
        print(s)
    

    比较重要

    lstrip&rstrip

    s2 = '***!!!!!nick handsome----***'
    print(s2.lstrip('*'))
    print(s2.rstrip('*'))
    '''
    !!!!!nick handsome----***
    ***!!!!!nick handsome----
    '''
    

    lower&upper

    s3 = 'aaabbJ'
    print(s3.lower()) # 大写->小写
    print(s3.upper()) # 小写->大写
    '''
    aaabbj
    AAABBJ
    '''
    
    

    startswith&endswith

    s3 = 'aaabbJ'
    print(s3.startswith('b')) # 是否以'b'开头-> False
    print(s3.endswith('J')) # 是否以'J'结尾-> True
    
    

    rsplit

    s2 = '***!!!!!nick handsome----***'
    print(s2.split('*', 1))
    print(s2.rsplit('*', 1))
    '''
    ['', '**!!!!!nick handsome----***']
    ['***!!!!!nick handsome----**', '']
    '''
    
    

    join 一般和split联用

    s3 = '*'
    # 以s3为间隔符,拼接列表里的每一个元素
    print(s3.join(['234', '234', '234']))  # 234*234*234
    
    s = '辣条/薯片/汽水/泡面/火腿肠/枸杞/当归/鹿茸'
    s1 = s.split('/')
    print('*'.join(s1)) # 辣条*薯片*汽水*泡面*火腿肠*枸杞*当归*鹿茸
    
    

    replace

    s2 = 'yongjiu handsome'
    # 用信字符串替代旧字符串输出
    print(s2.replace('yongjiu', 'gebilaowang')) # gebilaowang handsome
    
    

    isdigit,isalpha

    # 一般用于登陆验证输入
    s2 = '12312'
    print(s2.isdigit()) # 判断s2是否全为数字
    
    s3 = 'aaac1c'
    print(s3.isalpha()) # 判断s3是否全为字母
    
    

    find|rfind|index|rindex|count

    s = '***!!!!!nick $ handsome----***'
    # find()遍历找到的第一个字符的索引,默认从左找,找不到返回-1,不会报错 
    print(s.find('$')) # 13
    print(s.rfind('-')) # 26
    # index()遍历找到的第一个字符的索引,默认从左找,找不到会报错(建议不使用)
    print(s.index('$'))  # 13
    print(s.rindex('-'))  # 26
    # count()返回字符串中指定字符的个数
    print(s.count('!')) # 5
    
    

    center|ljust|rjust|zfill

    s2 = 'nick handsome'
    print(s2.center(50, '*'))  # ******************nick handsome*******************
    print(s2.ljust(50, '*'))   # nick handsome*************************************
    print(s2.rjust(50, '*'))   # *************************************nick handsome
    print(s2.zfill(50))        # 0000000000000000000000000000000000000nick handsome
    
    

    expandtabs

    # 针对	,只对	起作用
    s2 = 'a	a'
    print(s2)
    print(s2.expandtabs(8))  # 针对	而言
    '''
    a	a
    a       a
    '''
    
    

    captalize|swapcase|title

    # 只针对英文
    s2 = 'harry Potter'
    
    print(s2.capitalize())  # 首字母(一句话的开头)大写,其他全小写,用在段落开始
    print(s2.swapcase())  # 大小写互换
    print(s2.title())  # 所有单词首字母大写
    '''
    Harry potter
    HARRY pOTTER
    Harry Potter
    '''
    
    

    is系列

    .isdecim.(): # 检查字符串是否值包含十进制字符,如果是返回True,否则返回False。
    .isdigit(): # 如果字符串只包含数字则返回True,否则返回False。
    .isnumeric(): # 如果字符串中只包含数字字符,则返回True,否则返回False。
    .isalnum(): # 如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False。
    .isalpha(): # 如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False。
    .islower(): # 如果字符串中只包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True,否则返回False。
    .isspace(): # 如果字符串中只包含空白,则返回True,否则返回False
    .isupper(): # 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True,# 否则返回False。
    .istitle(): # 如果字符串是标题类型的(见title()),则返回True,否则返回False。
    
    
  • 相关阅读:
    筛选法 || POJ 1356 Prime Land
    搜索 || BFS || POJ 3278 Catch That Cow
    (素数筛) 找质数
    (map)后缀字符串
    字符串的进制
    (二进制枚举子集)买玩具
    (基础)01背包问题
    (基础)编辑距离
    (基础)最长公共字串
    最大子矩阵和
  • 原文地址:https://www.cnblogs.com/dadazunzhe/p/11290722.html
Copyright © 2020-2023  润新知