zoukankan      html  css  js  c++  java
  • 《Python学习之路 -- 字符串的方法》

      在前面已经提到Python中的字符串了,本文来列举介绍字符串的方法,我将字符串的方法分为以下几类:

    ①查询方法

    str.find(target,start=None,end=None)

    该方法用于查询字符串str中是否含有target,如果有,则返回target在这个字符串中首次出现的首字符的索引(从左往右检索),如果没有,则返回 -1 ,第二个参数和第三个参数用于指定查询的区域,包括开始索引,不包括结束索引(左闭右开)。

    my_str = 'hello jonas'
    result = my_str.find('o')  # 从左往右查找,找到字符o则返回它的下标索引,后面的o则不会被检索
    print(result)  # 输出 4
    result = my_str.find('o',5)  # 从字符串下标索引为5(包括)开始查找,如果不写结束索引则默认查找到字符串的最后一个字符
    print(result)  # 输出 7

    str.rfind(target,start=None,end=None)

     该方法与find()基本一致,不同的是检索的方向是从右往左

    my_str = 'hello jonas'
    result = my_str.rfind('o')
    print(result) # 输出 7

     str.index(target,start=None,end=None)

    该方法与find()基本一致,不同的是该方法查询不到结果则会报错

    my_str = 'hello jonas'
    result = my_str.find('w')
    print(result)  # 输出 -1
    result = my_str.index('w')  
    print(result)  # 查询不到结果,程序报错

     str.rindex(target,start=None,end=None)

    该方法与index()基本一致,不同的是检索的方向是从右往左

    my_str = 'hello jonas'
    result = my_str.find('o')
    print(result)  # 输出 4
    result = my_str.rindex('o')
    print(result)  # 输出 7

    ②截取方法

    str.split(sep=None,maxsplit=-1)

    该方法两个参数都有默认值,也就以为该方法可以不传实参直接调用,默认参数的情况下,该方法会将字符串中所有出现空格、制表符 和换行符 的地方打断,将剩下的所有字符串片段存放到一个列表中,并将这个列表返回;第一个参数sep代表截取字符串,如果指定了这个参数,则会按照这个指定的字符串去打断字符串str,将剩下的字符片段塞存放到一个列表中,返回这个列表;第二个参数是指定最大打断次数,默认值是-1代表无限。

    my_str = 'hello jonas	how are you
    i am fine'
    # 默认情况下按照空格,制表符和换行符分隔
    result = my_str.split()
    print(result)  # 输出:['hello', 'jonas', 'how', 'are', 'you', 'i', 'am', 'fine']
    my_str2 = 'hello jonas'
    # 按照字符'o'拆分字符串
    result = my_str2.split('o')
    print(result)  # 输出:['hell', ' j', 'nas']
    # 按照字符'o'拆分字符串,并且最多拆分一次(从左往右检索)
    result = my_str2.split('o',1)
    print(result)  # 输出:['hell', ' jonas']

    str.rsplit(sep=None,maxsplit=-1)

    该方法与split()基本一致,不同的是检索的方向是从右往左

    my_str2 = 'hello jonas'
    # 从左往右检索
    result = my_str2.split('o',1)
    # 从右往左检索
    result2 = my_str2.rsplit('o',1)
    print(result,result2)  # 输出:['hell', ' jonas']    ['hello j', 'nas']

     

    str.partition(sep)

    该方法也用于拆分字符串,与split()方法不同的是,该方法没有默认值,所以必须要指定拆分依据的字符串sep,如果不指定则会报错;除此以外,该方法必定会将字符串str分为三部分,第一部分是拆分字符串sep的前面,第二部分是拆分字符串sep本身,第三部分是拆分字符串sep后面,并将这三部分存放在一个元组中,结果返回这个元组。

    my_str = 'hello jonas'
    # 从左往右检索
    result = my_str.partition('o')
    print(result)  # 输出:('hell', 'o', ' jonas')

    str.rpartition(sep)

    该方法与partition()基本一致,不同的是检索的方向是从右往左

    my_str = 'hello jonas'
    # 从右往左检索
    result = my_str.rpartition('o')
    print(result)  # 输出:('hello j', 'o', 'nas')

    ③检查方法

    str.startswith(prefix,start=None,end=None)

    该方法用于检查字符串片段(默认是整个字符串)是否以prefix开头,如果是则返回True,否则返回False;第二和第三个参数用于指定检索区间。

    my_str = 'hello jonas'
    # 检查是否以he开头,默认检查整个字符串
    result = my_str.startswith('he')
    print(result)  # 输出:True
    # 从字符串的下标索引为6开始,是否以jonas开头
    result = my_str.startswith('jonas',6)
    print(result)  # 输出:True

    str.endswith(suffix,start=None,end=None)

    该方法用于检查字符串片段(默认是整个字符串)是否以suffix结尾,如果是则返回True,否则返回False;第二和第三个参数用于指定检索区间。

    my_str = 'hello jonas'
    # 检查是否以s结尾,默认检查整个字符串
    result = my_str.endswith('s')
    print(result)  # 输出:True
    # 从字符串的下标索引为6开始,是否以as结尾
    result = my_str.endswith('as',6)
    print(result)  # 输出:True

    str.isalnum( )

    该方法用于检查字符串str是否只包含数字或字母

    my_str = 'hello jonas'
    my_str2 = '你好,jonas'
    my_str3 = 'hello'
    # 检查是否只包含数字或字母,但不能有空格,汉字
    result = my_str.isalnum()
    result2 = my_str2.isalnum()
    result3 = my_str3.isalnum()
    print(result,result2,result3)  # 输出:False False True

    str.isalpha( )

    检查字符串str是否是一个连续并且只包含字母或中文的字符串,如果是,则返回True,否则返回False

    str.isdigit( )

    检查字符串str是否只包含数字(包括十进制数字和小圆圈数字),如果是,则返回True,否则返回False

    my_str = '123'
    my_str2 = '①②③'
    my_str3 = '一二三'
    # 检查是否只包含十进制数字或小圆圈数字
    result = my_str.isdigit()
    result2 = my_str2.isdigit()
    result3 = my_str3.isdigit()
    print(result,result2,result3)  # 输出:True True False

     

    str.isdecimal( )

    检查字符串str是否只包含数字(只包括十进制数字),如果是,则返回True,否则返回False

    my_str = '123'
    my_str2 = '①②③'
    my_str3 = '一二三'
    # 检查是否只包含十进制数字
    result = my_str.isdecimal()
    result2 = my_str2.isdecimal()
    result3 = my_str3.isdecimal()
    print(result,result2,result3)  # 输出:True False False

    str.isnumeric( )

    my_str = '123'
    my_str2 = '①②③'
    my_str3 = '一二三'
    # 检查是否只包含数字(包括十进制数字、小圆圈数字和文字里面的数字)
    result = my_str.isnumeric()
    result2 = my_str2.isnumeric()
    result3 = my_str3.isnumeric()
    print(result,result2,result3)  # 输出:True True True
    str.isspace( )
    检查字符串是否只包含空格,如果是,则返回True,否则返回False

    str.islower( ) 与 str.isupper( )

    检查字符串是否只包含小写/大写

    my_str = 'Hello'
    my_str2 = 'hello'
    result = my_str.isupper()
    result2 = my_str2.islower()
    print(result,result2)  # 输出 False True

    str.istitle( )

    检查字符串中是否每个单词的首字母都是大写

    my_str = 'Hello Jonas'
    result = my_str.istitle()
    print(result)  # 输出 True

    ④大小写转换方法

    str.lower( )

    将字符串转换为小写,该方法不会改变原字符串(因为字符串是不可变类型),而是生成一个新的字符串。

    str.upper( )

    将字符串转换为大写,该方法不会改变原字符串。

    str.title( )

    将字符串所有单词的首字母转为大写,该方法不会改变原字符串。

    str.capitalize( )

    将字符串的第一个字符转为大写,该方法不会改变原字符串。

     

    str.swapcase( )

    将字符串中的所有大写转为小写,所有小写转为大写,该方法不会改变原字符串。

     

    str.casefold( )

    将字符串str中的所有内容转换为某种对应关系,在某些国家的语言中有着某种对应关系的字符,比如常见的:将大写转为小写(其他对应关系我也不了解-.-)。

    my_str = 'Hello Jonas'
    result = my_str.lower()
    result2 = my_str.upper()
    result3 = my_str.title()
    result4 = my_str.capitalize()
    result5 = my_str.swapcase()
    result6 = my_str.casefold()
    print(result,result2,result3,result4,result5,result6)  
    # 输出: hello jonas      HELLO JONAS      Hello Jonas      Hello jonas     hELLO jONAS    hello jonas

    ⑤删除方法

    str.lstrip(chars=None)

    该方法默认删除字符串str左边的空格,也可以指定删除内容(一般用于去空格),该方法不会改变原字符串,而是生成一个新的字符串。

     

    str.lstrip(chars=None)

    该方法默认删除字符串str左边的空格,也可以指定删除内容(一般用于去空格),该方法不会改变原字符串,而是生成一个新的字符串。

     

    str.strip(chars=None)

    该方法默认删除字符串str左边的空格,也可以指定删除内容(一般用于去空格),该方法不会改变原字符串,而是生成一个新的字符串。

    ⑥对齐填充方法

    str.center(width,fillchar=None)

    给字符串指定一个长度width,并将str在这个长度居中,剩余空间由第二个参数填充,默认使用空格填充,该方法不会改变原字符串,而是生成一个新的字符串。

     

    str.ljust(width,fillchar=None)

    给字符串指定一个长度width,并将str在这个长度中左对齐,剩余空间由第二个参数填充,默认使用空格填充,该方法不会改变原字符串,而是生成一个新的字符串。

     

    str.rjust(width,fillchar=None)

    给字符串指定一个长度width,并将str在这个长度中右对齐,剩余空间由第二个参数填充,默认使用空格填充,该方法不会改变原字符串,而是生成一个新的字符串。

     

    str.zfill(width)

    该方法用于指定字符串长度,默认用字符0填充剩余空间。

    my_str = 'hello jonas'
    result = my_str.center(30,'*')
    print(result)  # 输出: *********hello jonas**********
    result = my_str.ljust(30,'-')
    print(result)  # 输出:hello jonas-------------------
    result = my_str.rjust(30)
    print(result)  # 输出:                   hello jonas

    ⑦其他方法

    str.count(sub,start=None,end=None)

    该方法用于统计sub在字符串片段中出现的次数,默认检索整个字符串,但是通过第二和第三个参数可以指定检索的区域,最后返回出现的次数。

    my_str = 'hello jonas'
    result = my_str.count('o')
    print(result)  # 输出:2

    str.format(*args,**kwargs)

    该方法用于格式化字符串

    my_str = 'My name is {}, I am {} years old,I come from {} '
    print(my_str.format('Jonas',18,'China'))  # 输出:My name is Jonas, I am 18 years old,I come from China
    my_str2 = '{0} {0} {1} {2}'
    print(my_str2.format('Jonas','Jack','Tom'))  # 输出:Jonas Jonas Jack Tom

     

    str.replace(old,new,count=None)

    该方法用于替换字符串中的内容,将字符串中的old替换为new,第三个参数可以指定替换的次数,-1 表示将所有匹配项替换。同样的,该方法不会改变原字符串,而是生成一个新的字符串。

    my_str = 'hello jonas'
    result = my_str.replace('jonas','Jerry')
    print(result)  # 输出:hello Jerry
  • 相关阅读:
    Yii ServiceLocator.php
    opencc 加载错误
    ionic2中segment中添加获取dom元素
    使用typescript 做计时器 setTimeout()中时间不能用的解决办法
    使用js算总价的问题
    ionic2 city-picker 报_dur错误
    oracle Notes
    Oracle 11g Compound Trigger
    with cats as pets get cataracts and macular degeneration
    Pivot Table
  • 原文地址:https://www.cnblogs.com/jonas-von/p/8922372.html
Copyright © 2011-2022 走看看