【Python】字符串切片

切片操作在Python中应用十分广泛并不局限于字符串操作,在列表等数据结构上同样适用十分重要。

Python字符串

与许多常见的程序设计语言不同,Python中字符串可以用单引号引起来,也可以用双引号引起来。

s = "Hello Python"
t = 'Hello world'

Python字符串的下标也是从0开始的。但可以从末尾往前引用,此时下标从-1开始。例如下列代码:

t = 'Hello world'
print(t[-1])

输出:

d

字符串切片

切片格式s[start:end],注意实际上切片范围是左闭右开的[start,end),如果没有start或end会默认补充此方向上的起点终点

代码:

s = "Hello Python,hello world"
# 注意左闭右开
print(s[6:12])
# 补充0为start
print(s[:12])
# 补充24 + 1为end(由于左闭右开要+1)
print(s[6:])
# 补充开始和结尾 相当于输出整串
print(s[:])

测试输出:

Python
Hello Python
Python,hello world
Hello Python,hello world

带有方向和步长的字符串切片

此时切片格式s[start:end:step]。step表示在[start:end)范围内每step个字符截取一个字符。
例如:

s = "abcdefghij"
print(s[::2])

输出:

acegi

当step为负值时,表示反向切片,如果没有start或end会默认补充此方向上的起点和终点。

s = "abcdefghij"
# 反向切片
print(s[9:0:-1])
# 反向步长绝对值不为1
print(s[9:0:-3])

输出:

jihgfedcb
jgd

在带有方向的切片时start和end必须合法否则什么也切不出来:
例如下方代码得不到任何输出

s = "abcdefghij"
# 反向切片
print(s[9:0:1])
# 反向带步长
print(s[0:9:-1])

输出:

(空)

留下一个reverse(反向输出字符串)代码做思考:print(s[::-1])

你可能感兴趣的:(Python,python,开发语言,字符串切片)