zoukankan      html  css  js  c++  java
  • python之字符串及其方法---整理集

    字符串方法

    1.capitalize方法:字符串首字母大写

    举例:

    test="alex"
    v=test.capitalize()
    print(v)
    返回结果:
    Alex

     

    2.casefold和lower方法,都是把字符串变成小写,区别是lower应对一般情况,而casefold使用范围更广

    举例:

    test="aLex"
    v1=test.casefold()
    print(v1)
    v2=test.lower()
    print(v2)
    返回结果:
    alex
    alex

     

    3.center方法:设定一个总长度,将字符串放置在中间,如果设定的长度多于字符串的长度,则使用指定的内容填充,默认是空格,并且只允许填充1个字符

    格式:
    count(<长度>[,<填充字符>])
    举例:

    test="aLex"
    v=test.center(20)
    返回结果:
            aLex        

    举例:

    test="aLex"
    v=test.center(20,"*")
    print(v)
    返回结果:
    ********aLex********

     

    4.count方法:在字符串中查找指定字符出现的次数,如果不指定起始及结束位置,则默认从头开始

    格式:
    count(<指定字符串>[,<起始位置>[,<结束位置>]])
    注意:起始位置从1开始计算,而非0
    举例:

    test="aLexalex"
    v=test.count('e')
    print(v)
    返回结果:
    2
    test="aLexalex"
    v=test.count('e',5)   #从第5位开始计算
    print(v)
    返回结果:
    1
    test="aLexalex"
    v=test.count('e',2)   #从第2位开始计算
    print(v)
    返回结果:
    2
    
    test="aLexalex"
    v=test.count('e',2,5)  #从第2位开始到第5位结束
    print(v)
    返回结果:
    1
    
    test="aLexalex"
    v=test.count('e',6,7)  #从6到7之间查找,起始位置是从1开始计算
    print(v)
    返回结果:
    1

    5.endswith方法:指定子串,判断字符串结尾是否是给定的字符串,返回布尔值
    格式:
    endswith(<指定子串>[,[开始位置],[结束位置]])

    举例:

    test="alex"
    v=test.endswith('e')
    print(v)
    返回结果:
    False
    
    test="alex"
    v=test.endswith('x')
    print(v)
    返回结果:
    True
    
    test="alex"
    v=test.endswith('ex')
    print(v)
    返回结果:
    True
    
    test="alexstkoex"
    v=test.endswith('ex',2,6)
    print(v)
    返回结果:
    False
    
    test="alexstkoex"
    v=test.endswith('ex',1,4)   #起始位置是从1开始计算
    print(v)
    返回结果:
    True

    6.find方法:寻找指定子串在字符串中的位置,返回值是位置

    五星方法:★★★★★
    格式:
    find(<指定子串>[,起始位置][,结束位置])
    注意:起始位置从0开始计算,而非1
    举例:

    test="alexstlkoex"
    v=test.find('l')
    print(v)
    返回结果:
    1
    
    test="alexstlkoex"
    v=test.find('e')
    print(v)
    返回结果:
    2
    
    test="alexstlkoex"
    v=test.find('e',2,4)
    print(v)
    返回结果:
    2
    
    test="alexstlkoex"
    v=test.find('l',1,6)  #指定末尾是6,不计算,也就是说指定位置是从1开始至6,并不包含6
    print(v)
    返回结果:
    1

    7.format方法:格式化字符串,将字符串中的占位符替换为指定变量的值,变量以大括号括起来
    格式:
    format(<变量表达式>[,<变量表达式>]...)
    举例:

    test='i am {name}'
    print(test)
    v=test.format(name='alex')
    print(v)
    返回结果:
    i am {name}
    i am alex

    举例:

    test='i am {name}, age is {age}'
    print(test)
    v=test.format(name='alex',age='19')
    print(v)
    返回结果:
    i am {name}, age is {age}
    i am alex, age is 19

    举例:也可以根据出现的顺序替换

    test='i am {0}, age is {1}'
    print(test)
    v=test.format('alex','19')
    print(v)
    返回结果:
    i am {0}, age is {1}
    i am alex, age is 19

    8.format_map方法:与format类似,只不过以key-value的样式传入变量的值
    格式:
    format_map({"key":'value'[,"key":'value',...]})
    举例:

    test='i am {name}, age {a}'
    v1=test.format(name='df',a=10)
    print(v1)
    v2=test.format_map({"name":'alex',"a":19})
    print(v2)
    返回结果是:
    i am df, age 10
    i am alex, age 19

    9.index方法:与find类似,也是查找位置,区别在于index如果没找到会报错,find方法如果没找到返回-1

    10.isalnum方法:用来判断字符串中是否只包含数字和字母,返回布尔值
    格式:
    isalnum()
    举例:

    test="usb2.0+usb3.0"
    v=test.isalnum()
    print(v)
    返回值是:
    False
    
    test="usb2.0usb3.0"
    v=test.isalnum()
    print(v)
    返回值是:
    False
    
    test="usb2.0usb3"
    v=test.isalnum()
    print(v)
    返回值是:
    False
    
    test="usb20usb30"
    v=test.isalnum()
    print(v)
    返回值是:
    True
    
    test="usbusb"   #只包含字符,返回True
    v=test.isalnum()
    print(v)
    返回值是:
    True
    
    test="1122"   #只包含数字,返回True
    v=test.isalnum()
    print(v)
    返回值是:
    True

     

    11.expandtabs方法:常用于断句。
    具体作用:指定制表符宽度,在字符串中按照宽度一次读入,如果读入之中没有制表符,则再次读入,如果读入中有制表符( ),则把制表符用空格补充,补充的数量根据指定宽度减去制表符之前读入的字符串长度

    格式:
    expandtabs(<num>)
    举例

    str1="uyiujoiuerwje	0021jk	jljsdf"
    v=str1.expandtabs(6)
    返回结果:
    uyiujoiuerwje     0021jk      jljsdf

    执行过程如下:
    设定读入宽度为6
    开始读入6个字符:uyiujo这期间没有制表符,不操作

    继续读入6个字符:iuerwj这期间没有制表符,不操作

    继续读入6个字符:e 在读入期间碰到了制表符,则停止读入,由于制表符之前有个字符e占用一个位置,则其余5个位置用空格代替,最后就是e+5个空格

    继续读入6个字符:0021jk这期间没有碰到制表符,不操作

    继续读入6个字符:碰到了制表符,那么就用6个空格代替制表符;

    继续读入6个字符:jljsdf这期间没有碰到制表符,不操作
    最后输出结果:uyiujoiuerwje 0021jk jljsdf

    举例:

    str1="12345678	9"
    v=str1.expandtabs(6)
    print(v,len(v))
    返回结果:
    12345678    9 13
    
    
    str1="1234567	89"
    v=str1.expandtabs(6)
    print(v,len(v))
    返回结果:
    1234567     89 14
    
    
    str1="username	email	password
    CCTV	ying@q.com	123
    CCTV	ying@q.com	123
    CCTV	ying@q.com	123
    "
    v=str1.expandtabs(20)
    print(v)
    返回结果:
    username            email               password
    CCTV                ying@q.com          123
    CCTV                ying@q.com          123
    CCTV                ying@q.com          123

    执行过程如下:
    设置了读入宽度为20,则:
    开始读入20个字符,username读完之后遇到制表符,则把剩余空间使用空格补全;

    继续读入20个字符,email读完之后遇到制表符,则把剩余空间使用空格补全;

    继续读入20个字符,password读完后遇到换行符,则开始换行,结束读入

    11.isalpha方法:判断字符串中是否全部都是字母,返回值是布尔值
    举例:

    str1="asdf"
    v=str1.isalpha()
    print(v)
    返回结果:
    True
    
    
    str1="as2df"
    v=str1.isalpha()
    print(v)
    返回结果:
    False
    
    
    str1="as汉字df"
    v=str1.isalpha()   #汉字也算作字母
    print(v)
    返回结果:
    True

    12.isdecimal和isdigit方法:都可以用来判断一个字符串是否全部是数字
    区别:isdigit范围更广泛,isdecimal只能判断十进制数字而且是整型,否则一律为false
    举例:

    str1="123"
    v1=str1.isdecimal()
    v2=str1.isdigit()
    print(v1,v2)
    返回结果:
    True True
    
    
    str1=""
    v1=str1.isdecimal()
    v2=str1.isdigit()
    print(v1,v2)
    返回结果:
    False False
    
    
    str1="a123"
    v1=str1.isdecimal()
    v2=str1.isdigit()
    print(v1,v2)
    返回结果:
    False False
    
    #只能判断整数,小数不行
    str1="3.1415926"
    v1=str1.isdecimal()
    v2=str1.isdigit()
    print(v1,v2)
    返回结果:
    False False
    
    #负数也不行
    str1="-31415926"
    v1=str1.isdecimal()
    v2=str1.isdigit()
    print(v1,v2)
    返回结果:
    False False
    
    #特殊类型的数值表示
    str1=""
    v1=str1.isdecimal()
    v2=str1.isdigit()
    print(v1,v2)
    返回结果:
    False True

    13.isidentifier方法:判断是否是标识符,返回布尔值
    标识符的认定标准:字母、数字、下划线,并且不能以数字开头
    只要符合上面的标准就是标识符

    举例:

    str1="def"
    v=str1.isidentifier()
    print(v)
    返回结果:
    True
    
    
    str1="1def"
    v=str1.isidentifier()
    print(v)
    返回结果:
    False
    
    
    str1="_def"
    v=str1.isidentifier()
    print(v)
    返回结果:
    True

    14.islower方法:判断字符串是否都是小写;
    isnumeric方法:判断字符串是否是数值,这个判断范围比isdigital更广泛
    举例:

    str1=""
    v1=str1.isdecimal()
    v2=str1.isdigit()
    v3=str1.isnumeric()
    print(v1,v2,v3)
    返回结果:
    False False True

    15.isprintable方法:判断字符串内容是否包含不可显示的字符,返回布尔值
    例如: 制表符、 换行符
    举例:字符串中包含不可显示的字符,返回false

    str1="ouisad	dfj"
    v=str1.isprintable()
    print(v)
    返回结果:
    False

    16.isspace方法:判断字符串是否只包含空格,只包含空格返回True,否则返回False
    举例:

    str1=" "
    v=str1.isspace()
    print(v)
    返回结果:
    True
    
    
    str1="   "
    v=str1.isspace()
    print(v)
    返回结果:
    True

    17.istitle方法及title方法:
    istitle方法:判断字符串是否符合文章标题标准,符合返回True,否则返回False
    符合文章标题的要求:字符串中每个单词开头字母均为大写
    举例:

    str1="this is a string"
    v=str1.istitle()
    print(v)
    返回结果:
    False
    
    str1="This Is A String"
    v=str1.istitle()
    print(v)
    返回结果:
    True
    
    title方法:把字符串转换为标题样式
    举例:
    str1="this is a string"
    v=str1.title()
    print(v)
    返回结果:
    This Is A String

    18.join方法:对字符串中的每个字符按照指定分隔符进行拼接

    五星重点:★★★★★

    举例:

    str1="七月的风八月的雨"
    print(str1)
    t=" "
    v=t.join(str1)
    print(v)
    返回结果:
    七月的风八月的雨
    七 月 的 风 八 月 的 雨
    
    举例:
    str1="七月的风八月的雨"
    print(str1)
    v="_".join(str1)
    print(v)
    返回结果:
    七月的风八月的雨
    七_月_的_风_八_月_的_雨

    19.ljust和rjust方法:与center类似,区别在于center把字符串放中间,ljust把字符串放左侧,rjust把字符串放右侧
    举例:

    str1="alex"
    v1=str1.ljust(20,"*")
    v2=str1.rjust(20,"*")
    print(v1)
    print(v2)
    返回结果:
    alex****************
    ****************alex

    20.lower方法和upper方法:将字符串中字符全部转换成小写和大写

    五星重点:★★★★★
    举例:

    str1="Alex"
    v1=str1.lower()
    v2=str1.upper()
    print(v1,v2)
    返回结果:
    alex ALEX

    21.lstrip方法rstrip方法和strip方法:分别去除左侧、右侧、两侧全部空格及换行、制表符等不可见字符

    五星重点:★★★★★
    注意:默认不加参数的时候是去除空格,如果指定的参数,则可以去除指定参数的内容

    举例:移除空格

    str1=" alex "
    v1=str1.lstrip()   #去除左侧空格
    v2=str1.rstrip()   #去除右侧空格
    v3=str1.strip()    ##去除所有空格
    print(v1)
    print(v2)
    print(v3)
    返回结果:
    alex 
     alex
    alex
    
    
    举例:移除换行、制表符等不可见字符
    str1="	alex	"
    v1=str1.lstrip()
    v2=str1.rstrip()
    v3=str1.strip()
    print(v1)
    print(v2)
    print(v3)
    返回结果:
    alex    
        alex
    alex
    
    举例:移除指定参数内容
    str1="alex"
    v2=str1.rstrip("x")
    print(v2)
    返回结果:
    ale
    
    str1="alex"
    v2=str1.rstrip("e")
    print(v2)
    返回结果:
    alex
    
    str1="alex"
    v2=str1.rstrip("ex")
    print(v2)
    返回结果:
    al
    
    str1="alex"
    v2=str1.rstrip("xex")
    print(v2)
    返回结果:
    al
    
    str1="alex"
    v2=str1.rstrip("lex")
    print(v2)
    返回结果:
    a
    
    str1="alex"
    v2=str1.rstrip("elx")
    print(v2)
    返回结果:
    a

    22.maketrans方法和translate方法
    这两种方法需要配合使用,先使用maketrans方法建立对应关系,然后用translate
    注意:建立对应关系时的字符串长度需要一致;
    例如:有2个字符串"aeiou"和"12345"
    现在想把这2个字符串的字符内容一一对应,即:a->1/e->2/i->3/o->4/u->5
    然后,想把一个字符串"sdaiodlffuioaouiaee"中的字符转换成对应关系的内容
    举例:

    str1="sdaiodlffuioaouiaee"
    m=str.maketrans("aeiou","12345")
    str2=str1.translate(m)
    print(str2)
    返回结果:
    sd134dlff5341453122

    23.partition方法、rpartition方法、split方法、rsplit方法、splitlines方法
    partition方法和rpartition方法一样都是把字符串分割成3份,分割结果中包含分割符
    split方法、rsplit方法也是分割字符串,但分割结果中并不包含分割符
    splitlines方法只针对字符串中包含有换行符的进行分割

    split方法五星重点方法★★★★★

    举例:

    str1="testasdsddfg"
    v=str1.partition("s")
    print(v)
    返回结果:
    ('te', 's', 'tasdsddfg')
    
    str1="testasdsddfg"
    v=str1.rpartition("s")
    print(v)
    返回结果:
    ('testasd', 's', 'ddfg')
    
    str1="testasdsddfg"
    v=str1.split("s")
    print(v)
    返回结果:
    ['te', 'ta', 'd', 'ddfg']
    
    str1="testasdsddfg"
    v=str1.split("s",1)
    print(v)
    返回结果:
    ['te', 'tasdsddfg']
    
    str1="testasdsddfg"
    v=str1.split("s",2)
    print(v)
    返回结果:
    ['te', 'ta', 'dsddfg']
    
    str1="asdfsssd
    uokkk
    lliipop"
    v=str1.splitlines()
    print(v)
    返回结果:
    ['asdfsssd', 'uokkk', 'lliipop']
    
    str1="asdfsssd
    uokkk
    lliipop"  #使用True或False用来控制是否显示换行符
    v=str1.splitlines(True)
    print(v)
    返回结果:
    ['asdfsssd
    ', 'uokkk
    ', 'lliipop']
    
    str1="asdfsssd
    uokkk
    lliipop"
    v=str1.splitlines(False)
    print(v)
    返回结果:
    ['asdfsssd', 'uokkk', 'lliipop']

    24.startswith方法
    用来判断字符串是否以指定字符开头

    举例:

    str1="backend 111"
    v=str1.startswith("b")
    print(v)
    返回结果:
    True
    
    str1="backend 111"
    v=str1.startswith("a")
    print(v)
    返回结果:
    False

    25.swapcase方法
    大小写转换,把字符串中小写字符改成大写,把大写字符改成小写

    举例:

    str1="aLex"
    v=str1.swapcase()
    print(v)
    返回结果:
    AlEX

    26.replace方法:字符串内容替换

    五星重点:★★★★★
    格式:
    replace(<被替换内容>,<新内容>[,替换次数])
    举例:

    str1="alexalexalex"
    v=str1.replace("ex","aaa")
    print(v)
    返回结果:
    alaaaalaaaalaaa
    
    str1="alexalexalex"
    v=str1.replace("ex","aaa",1)  #只替换1次
    print(v)
    返回结果:
    alaaaalexalex
    
    str1="alexalexalex"
    v=str1.replace("ex","aaa",2)  #只替换2次
    print(v)
    返回结果:
    alaaaalaaaalex

    下面是字符串的黑科技方法

    五星重点★★★★★

    1.字符串的切片:使用[位置1[:位置2]]表示,位置参数是数字,称为下标,从0开始
    作用:
    如果只给定一个位置参数,则提取字符串中的某一个子字符
    如果给定多个位置参数,则提取字符串中从位置1的字符开始(包含位置1的字符),直到位置2(不包含位置2的字符)
    举例:

    str1="alex"
    v=str1[0]
    print(v)
    返回结果:
    a
    
    str1="alex"
    v=str1[2]
    print(v)
    返回结果:
    e
    
    str1="alex"
    v=str1[0:1]   #从0开始,不包含1位置的字符
    print(v)
    返回结果:
    a
    
    str1="alex"
    v=str1[0:2]   #从0开始,不包含2位置的字符
    print(v)
    返回结果:
    al
    
    str1="alex"
    v=str1[0:-1]   #从0开始,直到最后,但不包含最后位置的字符
    print(v)
    返回结果:
    ale

    str1="alex"
    v=str1[-2] #倒数第2个
    print(v)
    返回结果:
    e

    
    

    str1="alex"
    v=str1[2:3] #从第2个开始到第3个,但不包含第3个,所以返回结果是e
    print(v)
    返回结果:
    e

    
    

    str1="alex"
    v=str1[2:4] #从第2个开始,直到最后,取得最后2个字符
    print(v)
    返回结果:
    ex

    
    

    str1="alex"
    k=len(str1)
    v=str1[k-2:k] #取得字符串中最后2个字符,通用方法
    print(v)
    返回结果:
    ex

     

    2.字符串的len方法:返回字符串中由多少个字符组成
    注意:在python3版本中如果字符串中的中文,则一个中文按1个计算;
    在python2.7版本中,如果按照utf8编码的话,一个汉字由3个字节组成,则3个汉字,此方法返回结果是9

    举例:

    str1="我爱你"
    v=len(str1)
    print(v)
    返回结果:
    3

    3.for循环方法:循环遍历字符串中的某一个字符
    格式:
    for 变量名 in 字符串:
    代码块

    举例:

    str1="我爱你"
    for love in str1:
      print(love)

    4.range方法:创建连续的数字,可以通过设置步长来指定不连续,但并不立即生成,当使用for循环的时候才生成

    格式:
    range(<数值1>[,数值2][,步长])

    例如:range(100)表示创建一个从0..99的连续数值

    举例:

    v=range(100)
    print(v)
    返回结果:   #在python3版本中,是如下的返回结果,如果在python2.7中,则会立即生成从0..99的连续数字
    range(0,100)
    
    如果要生成这个列表的话,需要使用for
    举例:
    v=range(100)
    for item in v:
        print(item)
    
    通过设置步长,来生成不连续的数字
    举例:
    v=range(0,100,5)
    for item in v:
        print(item)
    返回结果:
    0 5 10 15...

    如果要生成的是倒序:
    range(100,0,-1)


    for i in range(100,0,-1):
      print(i) #打印输出

     
  • 相关阅读:
    分类模型之支持向量机
    数据预处理
    数据挖掘基本流程
    【项目】项目95
    【项目】项目94
    【项目】项目93
    【项目】项目92
    【项目】项目91
    【项目】项目90
    【项目】项目89
  • 原文地址:https://www.cnblogs.com/Kumanon/p/10366767.html
Copyright © 2011-2022 走看看