在Python中,字符串被用来处理文本数据。在处理字符串时,我们经常需要访问字符串的某一部分。在这篇文章中,我们将看到如何在Python中使用索引来提取字符串的一部分。
什么是字符串索引?
如果我们有一个有序的序列或容器对象,如字符串、列表或元组,我们可以使用它们在序列中的相对位置来访问这些对象的元素。元素在有序序列中的相对位置被称为索引。通过索引,我们可以使用索引访问有序序列中的任何元素。
在python中,字符串的索引是基于零的。这意味着我们从0开始计数,字符串的第一个字符被分配到索引0,第二个字符被分配到索引1,第三个字符被分配到索引2,以此类推。
我们可以通过下面的例子来理解这一点。
假设我们有一个字符串 "PythonForBeginners"
这里,字母 "P "的索引是0,字母 "y "的索引是1,字母 "t "的索引是2,字母 "h "的索引是3,依此类推。最后一个字母 "s "的索引是17。
在python中,我们可以使用正数和负数进行字符串索引。让我们逐一讨论它们。
使用正数进行字符串索引
正如我们在上面所看到的,字符串的索引是使用从0到字符串长度-1的正数。我们可以使用正数索引在0到(字符串的长度)-1之间的任何位置访问一个字符,如下所示。
myString = "PythonForbeginners"
index = 0
character = myString[index]
print("Character at index {} in the string '{}' is {}.".format(index, myString, character))
index = 1
character = myString[index]
print("Character at index {} in the string '{}' is {}.".format(index, myString, character))
index = 2
character = myString[index]
print("Character at index {} in the string '{}' is {}.".format(index, myString, character))
index = 3
character = myString[index]
print("Character at index {} in the string '{}' is {}.".format(index, myString, character))
index = 17
character = myString[index]
print("Character at index {} in the string '{}' is {}.".format(index, myString, character))
输出。
Character at index 0 in the string 'PythonForbeginners' is P.
Character at index 1 in the string 'PythonForbeginners' is y.
Character at index 2 in the string 'PythonForbeginners' is t.
Character at index 3 in the string 'PythonForbeginners' is h.
Character at index 17 in the string 'PythonForbeginners' is s.
永远记住,大于或等于字符串长度的索引将导致IndexError异常,如下所示。
myString = "PythonForbeginners"
index = 20
character = myString[index]
print("Character at index {} in the string '{}' is {}.".format(index, myString, character))
输出结果。
Traceback (most recent call last):
File "/home/aditya1117/PycharmProjects/pythonProject/string12.py", line 3, in <module>
character = myString[index]
IndexError: string index out of range
你可以通过在访问字符串中的任何字符之前检查索引的值来避免 IndexError 异常。或者,你可以使用 python try except 块来处理发生的异常。
在这里,我将建议你使用 try except 块。如果我们使用小于字符串长度的索引进行访问,那么每次访问一个字符时检查索引可能是多余的,而且成本很高。当使用try except块时,程序将不会在我们每次从字符串中访问一个字符时检查索引值。如果发生IndexError,它将由except块中的代码来处理。
使用负数进行索引
我们也可以使用负数索引来访问字符串中的字符。在python中,字符串的最后一个字符被分配一个索引-1。同样地,字符串的第一个字符被分配了一个索引-(字符串的长度)。
我们可以通过下面的例子来理解这一点。
假设我们有一个字符串 "PythonForBeginners"
这里,字母 "s "的索引是-1。字母 "r "的索引是-2。 字母 "n "的索引是-3 ,字母 "n "的索引是-4,以此类推。第一个字母 "P "的指数是-18。
你可以用下面的程序来验证这一点。
myString = "PythonForbeginners"
index = -1
character = myString[index]
print("Character at index {} in the string '{}' is {}.".format(index, myString, character))
index = -2
character = myString[index]
print("Character at index {} in the string '{}' is {}.".format(index, myString, character))
index = -3
character = myString[index]
print("Character at index {} in the string '{}' is {}.".format(index, myString, character))
index = -4
character = myString[index]
print("Character at index {} in the string '{}' is {}.".format(index, myString, character))
index = -18
character = myString[index]
print("Character at index {} in the string '{}' is {}.".format(index, myString, character))
输出。
Character at index -1 in the string 'PythonForbeginners' is s.
Character at index -2 in the string 'PythonForbeginners' is r.
Character at index -3 in the string 'PythonForbeginners' is e.
Character at index -4 in the string 'PythonForbeginners' is n.
Character at index -18 in the string 'PythonForbeginners' is P.
当使用负数作为索引时,请确保你传递的索引不小于-(字符串的长度)。否则,你的程序会遇到IndexError,如下所示。
myString = "PythonForbeginners"
index = -20
character = myString[index]
print("Character at index {} in the string '{}' is {}.".format(index, myString, character))
输出。
Traceback (most recent call last):
File "/home/aditya1117/PycharmProjects/pythonProject/string12.py", line 3, in <module>
character = myString[index]
IndexError: string index out of range
结论
在这篇文章中,我们已经研究了python中的字符串索引。我们已经看到我们如何使用负数和正数来访问字符串中的字符。