上一篇我们学习了Python 字符串的一些基础知识,由于在以后的编程项目中会经常用到对字符串的知识,所以这一篇我们将继续学习字符串的相关知识。

一、字符串的索引和切片

字符串是字符的有序集合,可以通过其位置来获得具体的元素。在Python中,字符串中的字符是通过索引来提取的。

Python中没有单独的字符类型,一个字符也字符串。

Python中字符串有两种索引方法:正序索引和倒序索引。

正序索引是从左往右对字符串中的字符进行索引,第一个字符的索引从0开始。

倒序索引是从右往左对字符串中的字符进行索引,最右边的字符的索引从-1开始。

下图为字符串 "Hello World" 正序索引和倒序索引

python路径字符串空格转义 python 字符串空格_Python

我们将以此字符串为例子展开我们对字符串索引及切片的实际操作。

1.1 字符串中单个字符的获取,可通过字符串如 str1[下标]获取

str1 = "Hello World"print(str1[0]) #正序索引,获取左边第一个字符print(str1[-1]) #反序索引,获取右边第一个字符print(str1[2])    #正序索引,获取在边第三个字符(从0开始)print(str1[-2])   #反序索引,获取右边第二个字符(从-1开始)print(str1[5])    # 获取空格位print(type(str1[5]))




运行结果:

Hdlr




运行截图:

python路径字符串空格转义 python 字符串空格_python路径字符串空格转义_02

1.2 字符串中连续多个字符的获取,可通过字符串如 str1[start:end]获取。

得到对应索引范围的元素,该范围包围起始端,不包含结尾端(左闭右开型)默认截取方向从左往右。

注意:反向索引时,也是左闭右开型

var1 = "Hello World"print(var1[0:4])print(var1[-4:-1])print(var1[3:8])




运行结果:

Hellorllo Wo




运行截图:

python路径字符串空格转义 python 字符串空格_python路径字符串空格转义_03

几种较特殊情况:

var1 = "Hello World"print(var1[:]) #取整个字符串print(var1[:4])           #取索引为4左边的字符串print(var1[4:])           #从索引为4开始到最右边的字符串print(var1[-4:])          #从索引为-4开始到最右边的字符串print(var1[:-4])          #从索引为-4左边的字符串




运行结果:

Hello WorldHello WorldorldHello W




运行截图:

python路径字符串空格转义 python 字符串空格_3 按空格分割字符串_04

1.3 按步长获取间隔的字符串,语法为 str1[start:end:step](切片语法:[起始:结束:步长]) 按照step步长进行隔取;默认步长为1

var1 = "Hello World"print(var1[::])            #取整个字符串print(var1[::2]) #从0索引开始,每隔一个取一个值print(var1[1:7:2])         #从1索引开始,每隔一个取一个值print(var1[::-1])          #从右边开始取值,步长为1,把整个字符中取返




运行结果:

Hello WorldHloWrdeldlroW olleH




运行截图:

python路径字符串空格转义 python 字符串空格_3 按空格分割字符串_05

字符串取值几个注意点:

  • 通过取单个字符时,索引值不能超过字符串的索引。如在"Hello World"中索引不能为11,和-12,否则会报错
var1 = "Hello World"print(var1[11])运行报错如下:IndexError: string index out of range
var1 = "Hello World"
print(var1[11])
运行报错如下:
IndexError: string index out of range
  • 如果取多个字符时,索引超出字符串索引则能取得到值 
var1 = "Hello World"print(var1[0:13])print(var1[-13:])print(var1[-14::2])
var1 = "Hello World"
print(var1[0:13])
print(var1[-13:])
print(var1[-14::2])


运行结果:

Hello WorldHello WorldHloWrd
Hello World
Hello World
HloWrd


运行截图:

python路径字符串空格转义 python 字符串空格_Python_06


字符串获取子字符串的内容就到这里,大家可以多练练手,熟悉一下。 二、字符串几个常用的方法

2.1 Python len()  方法 计算字符串包含了多少个字符

var1 = "Hello World"print(len(var1))
var1 = "Hello World"
print(len(var1))


运行结果:

11     #表示有11个字符
11     #表示有11个字符


注意: Python中一个空格算一个字符,几个空格算几个字符

python路径字符串空格转义 python 字符串空格_字符串_07

2.2 Python split() 方法

用途:

  split() 通过指定的分隔符对字符串进行切片,如果第二个参数num有指定值,则分割为num+1个字符串 语法:


str.split(str="",num=str.conunt(str))
str.split(str="",num=str.conunt(str))


参数:

str --分隔符,默认为所有的空字符,包括空格,换行,制品符等 num --分割字数。黑认为-1,即分隔所有

str1="Hello Python world"print(str1.split())         #以空格为分隔符,分隔所有print(str1.split("o"))      #以"o"为分隔符,分隔所有print(str1.split("o",-1))   #以"o"为分隔符,分隔所有print(str1.split("o",0))    #以"o"为分隔符,使用o分隔0次print(str1.split("o",1))    #以"o"为分隔符,使用o分隔1次print(str1.split("o",2))    #以"o"为分隔符,使用o分隔2次print(str1.split("o",4))    #以"o"为分隔符,使用o分隔4次
str1="Hello Python world"
print(str1.split())         #以空格为分隔符,分隔所有
print(str1.split("o"))      #以"o"为分隔符,分隔所有
print(str1.split("o",-1))   #以"o"为分隔符,分隔所有
print(str1.split("o",0))    #以"o"为分隔符,使用o分隔0次
print(str1.split("o",1))    #以"o"为分隔符,使用o分隔1次
print(str1.split("o",2))    #以"o"为分隔符,使用o分隔2次
print(str1.split("o",4))    #以"o"为分隔符,使用o分隔4次


运行结果:

['Hello', 'Python', 'world']['Hell', ' Pyth', 'n w', 'rld']['Hell', ' Pyth', 'n w', 'rld']['Hello Python world']['Hell', ' Python world']['Hell', ' Pyth', 'n world']['Hell', ' Pyth', 'n w', 'rld']
['Hello', 'Python', 'world']
['Hell', ' Pyth', 'n w', 'rld']
['Hell', ' Pyth', 'n w', 'rld']
['Hello Python world']
['Hell', ' Python world']
['Hell', ' Pyth', 'n world']
['Hell', ' Pyth', 'n w', 'rld']


运行截图:

python路径字符串空格转义 python 字符串空格_字符串_08

结束语:

这篇内容讲了Python字符串的子字符串的获取,是通过索引和切片进行的。

另外还讲了len()方法和split()方法。下一篇内容,我们将还是学习字符串(str)的其他一些方法。