zoukankan      html  css  js  c++  java
  • Python字符串_序列_len函数

    一,字符串是序列

    字符串和整形、浮点数以及布尔值很不一样。一个字符串是一个序列,意味着是对其他值的有序排列。

    字符串就是一串有序的字符。你可以通过方括号操作符,每次去访问字符串中的一个字符:

    >>> fruit = 'banana'

    >>> letter = fruit[1]

    第二个语句选择了 fruit 这个字符串的序号为1的字符,并把这个字符赋值给了 letter 这个变量。方括号内的内容叫做索引,索引指示了你所指定的字符串中字符的位置。

    但得到的结果和我们预期的有点不一样:

    >>> fruit = 'banana'

    >>> letter = fruit[1]

    >>> letter

    'a'

    我们习惯性地认为banana 的第[1]个字符应该是 b,而不是 a。但对于计算机科学家来说,索引是字符串从头开始的偏移量,所以真正的首字母偏移量应该是0,所以这里letter得到的值是a

    >>> fruit = 'banana'

    >>> letter = fruit[0]

    >>> letter

    'b'

    索引为0,指向的字符为b.

    所以 b 就是字符串 banana 的第【0】个字符,而 a 是第【1】个,n 就是第【2】个了。

    另外,我们可以在方括号内的索引中使用变量和表达式:

    >>> fruit = 'banana'

    >>> i = 1

    >>> fruit[i]

    'a'

    >>> fruit[i+1]

    'n'

    >>> fruit[i+2]

    'a'

    但要注意的事,索引的值必须是整形的。否则你就会遇到类型错误了:

    >>> letter = fruit[2.5]

    Traceback (most recent call last):

      File "<stdin>", line 1, in <module>

    TypeError: string indices must be integers

    二,len长度

    len是一个内置函数,会返回一个字符串中字符的长度:

    >>> fruit = 'banana'

    >>> len(fruit)

    6

    要得到一个字符串的最后一个字符,你可能会想到去利用 len 函数:

    >>> fruit = 'banana'

    >>> length = len(fruit)      调用函数len,并赋值给length

    >>> last = fruit[length]

    Traceback (most recent call last):

      File "<stdin>", line 1, in <module>

    IndexError: string index out of range

    这里报错字符索引超出范围,原因就是banana这个字符串在第【6】个位置是没有字母的。因为我们从0开始数,所以这一共6个字母的顺序是0到5号。因此要得到最后一次字符,你需要在字符串长度6的基础上减去1,得到5才对。

    >>> last = fruit[length-1]

    >>> last

    'a'

    或者你也可以用负数索引,意思就是从字符串的末尾向前数几位。fruit[-1]这个表达式给你最后一个字符,fruit[-2]给出倒数第二个,依此类推。

    >>> last = fruit[-1]

    >>> last

    'a'

    >>> last = fruit[-2]

    >>> last

    'n'

    结束。

  • 相关阅读:
    并查集基本操作及其优化
    POJ-3159.Candies.(差分约束 + Spfa)
    差分约束和最短路径(算法导论)
    POJ-3660.Cow Contest(有向图的传递闭包)
    Floyd-Warshall算法计算有向图的传递闭包
    深入理解链式前向星
    POJ-1860.CurrencyExchange(Spfa判断负环模版题)
    HDU-4725.TheShortestPathinNyaGraph(最短路 + 建图)
    POJ-3268.SilverCowParty.(最短路 + 图的转置)
    POJ-1797.HeavyTransportation(最长路中的最小权值)
  • 原文地址:https://www.cnblogs.com/liusingbon/p/13159401.html
Copyright © 2011-2022 走看看