字符串是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中的運行情況如下圖所示:
新聞熱點
疑難解答