python str 索引_一步一步学Python3(小学生也适用) 第九篇: 字符串(str)类型(中)...

f253ba6daebb0e509d8c917c1a8f8266.png

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

一、字符串的索引和切片

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

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

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

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

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

8372e1246e03253254a92ff5da322f72.png

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

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]))

运行结果:

H
d
l
r

​<class 'str'>

运行截图:

f59d7a96c0efc3c592deed4785a50b45.png

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

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

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

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

运行结果:

Hell
orl
lo Wo

运行截图:

c857c60049fcfe9aa18c10cfa3c6d8cb.png

几种较特殊情况:

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

运行截图:

2a2687cd6c2b5ceab0538ebd79f830f6.png

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 World
HloWrd
el
dlroW olleH

运行截图:

b47b6dfae9697a8ed3bdf61acc7f0d15.png

字符串取值几个注意点:

  • 通过取单个字符时,索引值不能超过字符串的索引。如在"Hello World"中索引不能为11,和-12,否则会报错
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])

运行结果:

Hello World
Hello World
HloWrd

运行截图:

b1872fdcdbc5e0c07d883074b5af54af.png

字符串获取子字符串的内容就到这里,大家可以多练练手,熟悉一下。

二、字符串几个常用的方法

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

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

运行结果:

11     #表示有11个字符

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

61c66825e0a2bebaafe9e02f3196d566.png

2.2 Python split() 方法

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

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次

运行结果:

['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']

运行截图:

14e47687c1e7ebf636fe8e681c119961.png

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

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


原创不易,喜欢就给个赞,点个关注吧!更多的内容可以关注公众号:老树Python

推荐阅读:

老树Python:一步一步学Python3(小学生也适用) 第八篇: 字符串(str)类型(上)​zhuanlan.zhihu.com
2d6a7baed670e2ebd909adc57bd8ae89.png
老树Python:一步一步学Python3(小学生也适用) 第七篇: 小数/浮点数(float)类型​zhuanlan.zhihu.com
e4e7e36ede5685f8ec4b82f01981eadc.png
老树Python:一步一步学Python3(小学生也适用) 第六篇: 变量及整数(int)类型​zhuanlan.zhihu.com
4f54107ec9b52cfe296e0e35ff233e26.png
老树Python:一步一步学Python3(小学生也适用) 第五篇: Python运算符​zhuanlan.zhihu.com
9e4b366cf11dfe04eae3f3f824a04dbc.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值