字符串是Python中一种非常重要的数据类型。Python字符串是字符的集合,是由单引号、双引号或三引号包裹起来的若干字符的序列。Python字符串中的每个字符使用ASCII或Unicode字符编码,可以认为Python字符串是Unicode字符的集合。在前面的教程中,本站 已介绍了Python字符串的定义方法:《Python中的字符串String》。这篇文章将重点介绍Python字符串字符索引的方法及使用索引访问字符串中的字符。
与其它语言一样,Python字符串的索引也是从0开始的,下面给出一个字符串“武林网VEVB”的索引方式:
字符 | 翔 | 宇 | 亭 | I | T | 乐 | 园 |
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
从上面的示意中,可以看到,Python跟其它语言一样,把字符串从左到右进行编索引,且是从0开始的,每个字符都会有一个索引。那么一个具有n个字符的字符串,其索引的范围是[0, n-1],如上面的字符串一共有7个字符,则其索引的范围是0~6.
有时,我们可能对字符串后端的一些字符比较感兴趣,因此,Python提供了一种从后端访问字符串中字符的方式:使用负数索引,负数索引从-1开始,从后端往前进行编写索引,如下所示:
字符 | 翔 | 宇 | 亭 | I | T | 乐 | 园 |
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
后端索引 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
Python中使用下面的方式可以比较方便的访问字符串中的每个字符:
str_name[index]
如下面的例子:
>>> str1 = "武林网VEVB" >>> str1[0] '翔' >>> str1[1] '宇' >>> str1[5] '乐'
在使用中要注意给出的索引不要越界,否则会发生错误,如下例:
>>> str1 = "武林网VEVB" >>> str1[7] Traceback (most recent call last): File "<pyshell#4>", line 1, in <module> str1[7] IndexError: string index out of range >>>
因为,字符串 str1 的索引取值范围为0~6,str1[7]的使用超出了索引范围,造成程序出现错误:IndexError.
以上在Python3.8.2中的执行情况如下图所示:
下面是从后端访问字符串中字符的一些例子:
>>> str1 = "Python is easy." >>> str1[-1] '.' >>> str1[-2] 'y' >>> str1[-7] 's' >>> print(str1[-15]) P >>> str1[-16] #索引越界 Traceback (most recent call last): File "<pyshell#11>", line 1, in <module> str1[-16] #索引越界 IndexError: string index out of range >>>
这个例子中,字符串一共15个字符,其负数索引是从 -15~-1,小于-15的索引将会使程序出现错误。
以上在Python IDLE中的运行情况如下图所示:
新闻热点
疑难解答