领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

Python 中如何截取字符串?看这一篇就够了

nixiaole 2025-05-28 19:31:55 知识剖析 12 ℃

有小伙伴在 Stack Overflow 上提问:想从字符串的第三个字符开始截取到末尾,该怎么操作呢,比如 myString[2:end] 可行吗?如果省略第二个参数是不是就表示截取到末尾,省略第一个参数是不是就从开头开始呢?

下面就给大家详细介绍 Python 中截取字符串的方法:

  1. 基本切片操作:Python 里通过切片来截取字符串,用 [start:stop] 的形式,能得到从索引 startstop - 1 的子字符串。比如:
x = "Hello World!"
print(x[2:])  # 输出 'llo World!'
print(x[:2])  # 输出 'He'
print(x[:-2])  # 输出 'Hello Worl'
print(x[-2:])  # 输出 'd!'
print(x[2:-2])  # 输出 'llo Worl'
  1. 步长参数:切片还有第三个参数 step,表示步长。比如反转字符串就可以用 [::-1];选取间隔字符可以用 [::2]。像 "H-e-l-l-o- -W-o-r-l-d"[::2] 会输出 "Hello World"
  2. 和其他语言的区别:像 PHP 和 Perl 的 Substr() 函数参数是起始位置和长度,而 Python 切片需要的是起始位置和结束位置的后一位。所以 Substr(s, beginning, LENGTH) 在 Python 里要写成 s[beginning : beginning + LENGTH]
  3. 特殊情况
  4. [:] 可以对字符串进行浅拷贝,但由于字符串是不可变类型,直接赋值 a = b 就够了。
  5. 可以用 None 替代空位置来表示“从开头”或“到末尾”,在函数里很有用。比如:
def substring(s, start, end):
    return s[start:end]

print(substring('abcde', 0, 3))  # 输出 'abc'
print(substring('abcde', 1, None))  # 输出 'bcde'
- 还能使用 `slice` 对象,让代码更易读。例如:
string = "my company has 1000$ on profit, but I lost 500$ gambling."
EARNINGS = slice(15, 19)
LOSSES = slice(43, 46)
final = int(string[EARNINGS]) - int(string[LOSSES])
print(final)  # 输出 500

大家学会了吗?快去试试用这些方法截取字符串吧!

Tags:

最近发表
标签列表