zoukankan      html  css  js  c++  java
  • 字符串类型内置方法

    字符串类型内置方法

    字符串(str)

    1、用途:描述性质的东西,如人的名字,单个爱好,地址,国家。

    2、定义:使用''、""、'" "'、""" """包裹的一串字符

    3、常用操作和内置方法:

    ​ 1、安索引取值

    ​ 2、切片

    ​ 3、长度len

    ​ 4、成员运算in|not in

    ​ 5、移除空白strip

    ​ 6、切分split

    ​ 7、循环

    1.按索引取值(只可取不可改变)

    msg = 'hello stone'
    print(f'索引为4:{msg[4]}')
    print(f"索引值为6:{msg[6]}")
    
    索引为4:o
    索引值为6:s
    

    2.切片(顾头不顾尾,步长)

    msg = 'hello stone'
    print(f"取出名字:{msg[6:12]}")
    print(f"倒序:{msg[-1:-12:-1]}")
    print(f"间隔2:{msg[::2]}")
    
    取出名字:stone
    倒序:enots olleh
    间隔2:hlosoe
    

    3.长度len

    name = 'stone rock'
    print(len(msg))
    
    11
    

    4.成员运算in or not in

    name = 'stone rock nick king qiang xing ping'
    print('stone' in name)
    print('rui' in name)
    
    True
    False
    

    5.移除空白strip

    name = '    stone rock nick king qiang xing ping    '
    print(name.strip())  #默认移除两端的空格
    
    stone rock nick king qiang xing ping
    
    name = 'zzzzzzz stone rock nick king qiang xing ping zzzzzz'
    print(name.strip('z')) #从两端移除z
    
    stone rock nick king qiang xing ping
    

    6.切割split

    name = 'zzzzzzz:stone:rock:nick:king:qiang:xing:ping:zzzzzz'
    print(name.split(':'))  #以:号进行切割,默认从左边开始 
    
    ['zzzzzzz', 'stone', 'rock', 'nick', 'king', 'qiang', 'xing', 'ping', 'zzzzzz']
    
    name = 'zzzzzzz stone rock nick king qiang xing ping zzzzzz'
    print(name.split('stone'))  #以stone进行切割,默认从左边开始
    
    ['zzzzzzz ', ' rock nick king qiang xing ping zzzzzz']
    
    name = 'zzzzzzz stone rock nick king qiang xing ping zzzzzz'
    print(name.split(' ',4))   #以空格进行切割,默认从左边开始,切割4次
    
    ['zzzzzzz', 'stone', 'rock', 'nick', 'king qiang xing ping zzzzzz']
    
    

    7.循环

    name = 'stone rock nick'
    for i in name:
        print(i)
    s
    t
    o
    n
    e
     
    r
    o
    c
    k
    
    

    需要重点掌握的内置方法

    1、lstrip和rstrip

    s = '12345上山打老虎,老虎没打着,打到一只bigFanPing(小浣熊)'
    print(s.lstrip('12345'))  #lstrip左移除,从左边开始。
    
    上山打老虎,老虎没打着,打到一只bigFanPing(小浣熊)
    
    
    s = '12345上山打老虎,老虎没打着,打到一只bigFanPing(小浣熊)'
    print(s.rstrip(')熊浣小(')) #rstrip右移除,从右边开始移除
    
    12345上山打老虎,老虎没打着,打到一只bigFanPing(
    
    

    2、lower和upper

    name = 'stone nick KING yun XING'
    print(name.lower())   #lower将大写字母变成小写
    
    stone nick king yun xing
    
    
    name = 'stone nick KING yun XING'
    print(name.upper())   #upper将小写字母变成大写
    STONE NICK KING YUN XING
    
    

    3、startswith()和endswith()

    name = 'stone nick KING yun XING'
    print(name.startswith('stone')) #判断是否以stone开头,若为真,返回True,否则,返回Fause
    print(name.endswith('nick'))    #判断是否以nick结尾,若为真,返回True,否则,返回Fause
    
    True
    False
    
    

    4、rsplit(右切割)

    name = 'stone nick KING yun XING'
    print(name.rsplit(' ',2))
    
    ['stone nick KING', 'yun', 'XING']
    
    

    5、join(拼接)

    print('...'.join(['1','3','5','6','7','9','10']))  #用...把列表中的字符串拼接起来,join运用于字符串之中
    1...3...5...6...7...9...10
    
    

    6、replace(代替)

    name = 'stone nick KING yun XING'
    print(name.replace('stone','rock'))  #将字符串中的某一个元素用其他元素代替
    
    rock nick KING yun XING
    
    

    7、isdigit()(判断是否为数字)

    age = '17'
    print(age.isdigit())
    msg = 'hello word'
    print(msg.isdigit())
    height = '183.55'
    print(height.isdigit())
    
    True
    False
    False
    
    

    4、存一个值or多个值:一个值

    5、有序or无序:只要是有索引的,都是有序的,字符串是有序的。

    6、可变or不可变:不可变数据类型

    其他操作:

    1.find()、rfind()、index()、rindex()、count()

    # str之find()、rfind()、index()、rindex()、count()
    msg = 'my name is tank, tank shi sb, hha'
    
    print(f"msg.find('tank'): {msg.find('tank')}")  # 找不到返回-1
    print(f"msg.find('tank',0,3): {msg.find('tank',0,3)}")
    print(f"msg.rfind('tank'): {msg.rfind('tank')}")  # 找不到返回-1
    print(f"msg.index('tank'): {msg.index('tank')}")  # 找不到报错
    print(f"msg.rindex('tank'): {msg.rindex('tank')}")  # 找不到报错
          
    
    print(f"msg.count('tank'): {msg.count('tank')}")
    
    msg.find('tank'): 11
    msg.find('tank',0,3): -1
    msg.rfind('tank'): 17
    msg.index('tank'): 11
    msg.rindex('tank'): 17
    msg.count('tank'): 2
    
    

    2.center()、ljust()、rjust()、zfill()

    # str之center()、ljust()、rjust()、zfill()
    print(f"'info nick'.center(50,'*'): {'info nick'.center(50,'*')}")
    print(f"'info nick'.ljust(50,'*'): {'info nick'.ljust(50,'*')}")
    print(f"'info nick'.rjust(50,'*'): {'info nick'.rjust(50,'*')}")
    print(f"'info nick'.zfill(50): {'info nick'.zfill(50)}")  # 默认用0填充
    
    'info nick'.center(50,'*'): ********************info nick*********************
    'info nick'.ljust(50,'*'): info nick*****************************************
    'info nick'.rjust(50,'*'): *****************************************info nick
    'info nick'.zfill(50): 00000000000000000000000000000000000000000info nick
    
    

    3.expandtabs()

    # str之expandtabs()
    print("a\tb\tc: %s"%('a	b	c	'))  # 默认制表符8个空格
    print("'a\tb\tc'.expandtabs(32): %s"%('a	b	c	'.expandtabs(32)))
    
    a	b	c: a  b   c   
    'a	b	c'.expandtabs(32): a                               b                               c     
    
    

    4.captalize()、swapcase()、title()

    # str之captalize()、swapcase()、title()
    name = 'nick handsome sWAPCASE'
    
    print(f"name.capitalize(): {name.capitalize()}")
    print(f"name.swapcase(): {name.swapcase()}")  # 大小写互转
    print(f"name.title(): {name.title()}")
    
    

    5.is数字系列(只是为了告诉你,判断是否为数字时除了中文数字以后使用isdigit()即可)

    • isdecimal(): 检查字符串是否值包含十进制字符,如果是返回True,否则返回False。
    • isdigit(): 如果字符串只包含数字则返回True,否则返回False。
    • isnumeric(): 如果字符串中只包含数字字符,则返回True,否则返回False。
    num = "1"  #unicode
    num.isdigit()   # True
    num.isdecimal() # True
    num.isnumeric() # True
    
    num = "1" # 全角
    num.isdigit()   # True
    num.isdecimal() # True
    num.isnumeric() # True
    
    num = b"1" # byte
    num.isdigit()   # True
    num.isdecimal() # AttributeError 'bytes' object has no attribute 'isdecimal'
    num.isnumeric() # AttributeError 'bytes' object has no attribute 'isnumeric'
    
    num = "IV" # 罗马数字
    num.isdigit()   # True
    num.isdecimal() # False
    num.isnumeric() # True
    
    num = "四" # 汉字
    num.isdigit()   # False
    num.isdecimal() # False
    num.isnumeric() # True
    
    ===================
    isdigit()
    True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
    False: 汉字数字
    Error: 无
    
    isdecimal()
    True: Unicode数字,全角数字(双字节)
    False: 罗马数字,汉字数字
    Error: byte数字(单字节)
    
    isnumeric()
    True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
    False: 无
    Error: byte数字(单字节)
    
    ================
    import unicodedata
    
    unicodedata.digit("2")   # 2
    unicodedata.decimal("2") # 2
    unicodedata.numeric("2") # 2.0
    
    unicodedata.digit("2")   # 2
    unicodedata.decimal("2") # 2
    unicodedata.numeric("2") # 2.0
    
    unicodedata.digit(b"3")   # TypeError: must be str, not bytes
    unicodedata.decimal(b"3") # TypeError: must be str, not bytes
    unicodedata.numeric(b"3") # TypeError: must be str, not bytes
    
    unicodedata.digit("Ⅷ")   # ValueError: not a digit
    unicodedata.decimal("Ⅷ") # ValueError: not a decimal
    unicodedata.numeric("Ⅷ") # 8.0
    
    unicodedata.digit("四")   # ValueError: not a digit
    unicodedata.decimal("四") # ValueError: not a decimal
    unicodedata.numeric("四") # 4.0
    
    #"〇","零","一","壱","二","弐","三","参","四","五","六","七","八","九","十","廿","卅","卌","百","千","万","万","亿"
    
    

    6.is其他

    • isalnum(): 如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False。
    • isalpha(): 如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False。
    • islower(): 如果字符串中只包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True,否则返回False。
    • isspace(): 如果字符串中只包含空白,则返回True,否则返回False
    • isupper(): 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True,否则返回False。
    • istitle(): 如果字符串是标题类型的(见title()),则返回True,否则返回False。
    Never,Never,Never give up.
  • 相关阅读:
    搭建聊天机器人Bot Framework
    UsernamePasswordAuthenticationToken
    在JavaWeb项目中URL中字符串加密解密方案
    python自定义库文件路径
    difference between collection and association mapping in mybatis 3
    statpot:使用mongo+bootstrap+highcharts做统计报表
    Android仿微信SlideView聊天列表滑动删除效果
    Android Studio 运行、编译卡死的解决办法
    Android wear
    android实现json数据的解析和把数据转换成json格式的字符串
  • 原文地址:https://www.cnblogs.com/zuihoudebieli/p/10915857.html
Copyright © 2011-2022 走看看