• 字符串索引及其越界问题 out of range


    在学列表的时候,我们知道了可以通过 索引 来访问列表里的元素,其实字符串也一样有 索引和分片,与列表规则一致。

    string = 'Hello World'
    # 如果都省略,则是复制一个一样的字符串
    print(string[:])
    # 输出:Hello World

    分片索引超出范围会怎么样?会报错吗?例如:
    string = 'Hello World'
    print(string[0:100000])
    分片超出范围是不会报错的。你可以把字符串想象成一根绳子,分片就是用刀将绳子切分开来。在字符串长度内分片相当于在绳子上切割,而超出范围相当于一刀砍到了空气,对于绳子来说没有影响。

    但如果取值超出范围则会报错,如:
    print(string[1000])

    #IndexError: string index out of range

    One more example:
    利用分片操作,实现一个 trim() 函数,该函数的功能是去除 字符串首尾 的所有空格,字符串中间的空格保留。如:' Hello World ' 处理成 'Hello World'

    def trim(s):
    while s[:1]==' ':
    s=s[1:]
    while s[-1:]==' ':

    #这里需要注意,如果while s[-1]则会报错,out of range,因为最后一个是空字符。

    #因为当字符串为空的时候,s[0]也是越界的,s[-1]也是越界的


    s=s[:-1]

    return s

    print(trim(' Hello World'))
    print(trim('Hello World '))
    print(trim(' Hello World '))
    print(trim(' Hello World '))
    print(trim(' '))

     
  • 相关阅读:
    maven上传jar包规范
    java.util.ConcurrentModificationException
    求集合中的最大值和最小值
    对象/集合转换成json
    字符串直接赋值和构造赋值的区别
    CSV文件读取
    读取properties配置文件
    图片轮播 js代码
    工作流数据库字段设计-审批流程。。
    @Html.Partials 加载分布视图传参数
  • 原文地址:https://www.cnblogs.com/mingzhuqi/p/13245821.html
Copyright © 2020-2023  润新知