Python 字符串切片

你好,有抱负的 Python 程序员们!今天,我们将开始一段激动人心的旅程,深入了解 Python 中的字符串切片。作为你友好的计算机科学老师,我将一步一步引导你了解这个迷人的话题。所以,拿起你最喜欢的饮料,放松一下,让我们开始吧!

Python - Slicing Strings

Python 字符串索引

在我们开始切片字符串之前,我们需要了解 Python 是如何对它们进行索引的。将字符串视为一系列字符,每个字符都有自己的唯一地址或索引。

让我们从一个简单的例子开始:

问候语 = "Hello, World!"

在这个字符串中,每个字符都有一个位置,从 0 开始。是的,你没听错——在 Python 中,我们从 0 开始计数,而不是 1。这就像一个奇怪的编程传统,但你很快就会习惯的!

以下是索引的样子:

H  e  l  l  o  ,     W  o  r  l  d  !
0  1  2  3  4  5  6  7  8  9 10 11 12

要访问特定的字符,我们使用方括号 [] 在字符串名称后面,索引在里面:

print(问候语[0])  # 输出: H
print(问候语[7])  # 输出: W

Python 字符串正负索引

现在,有趣的事情来了。Python 允许我们使用正索引和负索引。正索引就像我们刚才看到的那样工作,从字符串开头的 0 开始。另一方面,负索引从字符串末尾的 -1 开始,并向前移动。

H  e  l  l  o  ,     W  o  r  l  d  !
0  1  2  3  4  5  6  7  8  9 10 11 12
-13-12-11-10 -9 -8 -7 -6 -5 -4 -3 -2 -1

让我们试试看:

print(问候语[-1])   # 输出: !
print(问候语[-6])   # 输出: W

Python 字符串切片

现在我们已经掌握了索引,让我们继续学习切片。切片允许我们提取字符串的一部分。切片的基本语法是:

字符串[start:end]

这将给我们一个从 start 索引开始到 end 索引(不包括)的子字符串。这就像切面包一样——你决定从哪里开始切,在哪里停止!

来看一些例子:

print(问候语[0:5])   # 输出: Hello
print(问候语[7:12])  # 输出: World

这里有一个专业提示:如果你省略 start 索引,Python 会认为你想从开头开始。如果你省略 end 索引,它会认为你想一直到结束:

print(问候语[:5])    # 输出: Hello
print(问候语[7:])    # 输出: World!

Python 字符串切片使用负索引

还记得我们之前讨论的负索引吗?我们也可以在切片中使用它们!这对于从字符串末尾开始切片特别有用:

print(问候语[-6:-1])  # 输出: World
print(问候语[-6:])    # 输出: World!

字符串切片的索引默认值

Python 的切片功能非常宽容。如果你没有指定开始或结束索引,它会使用一些合理的默认值:

  • 如果省略 start,则默认为字符串的开头(索引 0)
  • 如果省略 end,则默认为字符串的末尾

以下是一个总结这些默认值的表格:

切片语法 含义
字符串[:] 整个字符串
字符串[:end] 从开始到 end-1
字符串[start:] start 到结束
字符串[start:end] startend-1

让我们看看这些操作:

print(问候语[:])      # 输出: Hello, World!
print(问候语[:5])     # 输出: Hello
print(问候语[7:])     # 输出: World!
print(问候语[2:10])   # 输出: llo, Wor

字符串切片的返回类型

这里有一个重要的点要记住:当你切片一个字符串时,你会得到另一个字符串。这意味着你可以在切片结果上执行进一步的字符串操作。

切片 = 问候语[7:]
print(type(切片))  # 输出: <class 'str'>
print(切片.upper())  # 输出: WORLD!

在我们结束之前,让我们谈谈字符串切片的另一个很酷的功能:步长值。你可以在你的切片中添加第三个数字,这决定了步长或跨度:

字符串[start:end:step]

例如:

print(问候语[::2])    # 输出: Hlo ol!
print(问候语[::-1])   # 输出: !dlroW ,olleH

第一个例子获取每个第二个字符,而第二个例子完全反转了字符串!

就这样,各位!你刚刚成为了一个 Python 字符串切片忍者。请记住,熟能生巧,所以不要犹豫,尝试这些概念。试着切片你的名字,你最喜欢的引语,甚至是这个教程文本!

字符串切片就像在 Python 的世界中挥舞一把神奇的剑。它允许你精确地切割出你所需要的文本片段,使你的代码更加高效和优雅。所以,大胆地去切片那些字符串吧!

编码愉快,直到下次,愿你的代码没有 bug,你的字符串完美切片!

Credits: Image by storyset