目录
  • 前言
  • 模版
  • 示例
    • 获取字符串的前 5 个字符
    • 获取从第 3 个字符开始,长度为 4 的截取字符串
    • 获取字符串的最后一个字符
    • 获取字符串的末尾 5 个字符
    • 获取一个截取字符串,包括除了末尾 4 个和开头第一个字符的所有字符
  • 更多示例
    • 每个字符之间间隔一个索引
    • 补充:根据指定字符截取字符串
  • 总结

    前言

    Python 提供了很多截取字符串的方法,被称为“切片(slicing)”。

    模版如下:

    string[start: end: step]

    其中,

    • start:起点位置,子字符串的起始索引。该索引处的字符包含在子字符串中。start 为空时则默认为 0。
    • end:终点位置,子字符串的终止索引。该索引处的字符不包括在子字符串中。end 为空时,或者指定的值超过字符串的长度,则默认它等于字符串的长度。
    • step:步长,当前字符之后和目标字符之间的距离。step 为空时,则默认值为 1。

    模版

    • string[start:end]:获取从 起点位置 到 终点位置 – 1 的所有字符
    • string[:end]:获取从 字符串开头 到 终点位置 – 1 的所有字符
    • string[start:]:获取从 起点位置 到字符串结尾的所有字符
    • string[start:end:step]:获取从 起点位置 到 终点位置 – 1 的,每个之间距离 步长 的所有字符

    示例

    获取字符串的前 5 个字符

    string = "freeCodeCamp"
    print(string[0:5])
    

    输出:

    > freeC

    注意:print(string[:5]) 和 print(string[0:5]) 返回的结果一样

    获取从第 3 个字符开始,长度为 4 的截取字符串

    string = "freeCodeCamp"
    print(string[2:6])
    

    输出:

    > eeCo

    请注意,起点或终点位置索引可能为负数。负索引的意思是从字符串的末尾开始而不是从开头开始(即从右到左)开始计数。索引-1 代表字符串的最后一个字符,-2 代表倒数第二个字符,依此类推……

    获取字符串的最后一个字符

    string = "freeCodeCamp"
    print(string[-1])
    

    输出:

    > p

    获取字符串的末尾 5 个字符

    string = "freeCodeCamp"
    print(string[-5:])
    

    输出:

    > eCamp

    获取一个截取字符串,包括除了末尾 4 个和开头第一个字符的所有字符

    string = "freeCodeCamp"
    print(string[1:-4])
    

    结果:

    > reeCode

    更多示例

    str = “freeCodeCamp”
     
    print str[-5:-2] # prints ‘eCa'
    print str[-1:-2] # prints ‘' (empty string)
    

    每个字符之间间隔一个索引

    string = "freeCodeCamp"
    print(string[::2])
    

    结果:

    > feCdCm

    补充:根据指定字符截取字符串

    先获取字符的下标位置;

    再通过以上的方法截取;

    Python提供index 函数,检测字符串中是否包含子字符串,通常表现为 某些特定字符,特定单词;a.index(b, begin, end),a为需要校验字符串,b为字符串,begin 为开始截取的字符的下标(默认为0),end结束字符下标(默认为字符长度)

    示例:

    str1 = "Hello.python";
    str2 = ".";
    print str1.index(str2);#结果5
    print str1.index(str2, 2);#结果5
    print str1.index(str2, 10);#结果报错,没找到子字符串

     综合以上所述,按照字符截图示例

    str1 = "Hello.python";
    str2 = ".";
    print str1.index(str2);#结果5
    print str1[:str1.index(str2)]     #获取 "."之前的字符(不包含点)  结果 Hello
    print str1[str1.index(str2):] ; #获取 "."之前的字符(包含点) 结果.python

    总结

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。