python之字符串的切片操作
对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。
切片 方法适用于 字符串、列表、元组
切片 使用 索引值 来限定范围,从一个大的 字符串 中 切出 小的 字符串
列表 和 元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
字典 是一个 无序 的集合,是使用 键值对 保存数据
字符串[开始索引:结束索引:步长]
注意:
指定的区间属于 左闭右开 型
[开始索引, 结束索引)
=>开始索引 >= 范围 < 结束索引
从
起始
位开始,到结束
位的前一位 结束(不包含结束位本身)
从头开始,开始索引 数字可以省略,冒号不能省略
到末尾结束,结束索引 数字可以省略,冒号不能省略
步长默认为
1
,如果连续切片,数字和冒号都可以省略
索引的顺序和倒序
在 Python 中不仅支持 顺序索引,同时还支持 倒序索引
所谓倒序索引就是 从右向左 计算索引
最右边的索引值是 -1,依次递减
演练需求
截取从 2 ~ 5 位置 的字符串
截取从 2 ~
末尾
的字符串
截取从
开始
~ 5 位置 的字符串
截取完整的字符串
从开始位置,每隔一个字符截取字符串
从索引 1 开始,每隔一个取一个
截取从 2 ~
末尾 - 1
的字符串
截取字符串末尾两个字符
字符串的逆序(面试题)
答案
num_str = "0123456789"
# 1. 截取从 2 ~ 5 位置 的字符串
print(num_str[2:6])
# 2. 截取从 2 ~ `末尾` 的字符串
print(num_str[2:])
# 3. 截取从 `开始` ~ 5 位置 的字符串
print(num_str[:6])
# 4. 截取完整的字符串
print(num_str[:])
# 5. 从开始位置,每隔一个字符截取字符串
print(num_str[::2])
# 6. 从索引 1 开始,每隔一个取一个
print(num_str[1::2])
# 倒序切片
# -1 表示倒数第一个字符
print(num_str[-1])
# 7. 截取从 2 ~ `末尾 - 1` 的字符串
print(num_str[2:-1])
# 8. 截取字符串末尾两个字符
print(num_str[-2:])
# 9. 字符串的逆序(面试题)
print(num_str[::-1])
练习
利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()
方法:
def trim(s):while s[:1] == ' ':s = s[1:]
while s[-1:] == ' ':s = s[:-1]
while s[:] == ' ':s = ''return s
if trim('hello ') != 'hello':print('测试失败!')
elif trim(' hello') != 'hello':print('测试失败!')
elif trim(' hello ') != 'hello':print('测试失败!')
elif trim(' hello world ') != 'hello world':print('测试失败!')
elif trim('') != '':print('测试失败!')
elif trim(' ') != '':print('测试失败!')
else:print('测试成功!')
python之字符串的切片操作相关推荐
- Python入门--字符串的切片操作
#字符串的切片操作 #字符串是不可变对象 #不具备增删改等操作 #切片操作将产生新的对象 #hello,python #0,1,2,3,4,5,6,7,8,9,10,11 #s[:5]-->he ...
- Python中字符串的迷幻操作-----驻留机制的理解
文章目录 驻留机制 字符串 什么是字符串驻留机制呐 驻留机制的优点 字符串查询操作 字符串大小写转换操作 字符串内容对齐操作 字符串的切割操作 字符串判断的方法 字符串的替换合并操作 字符串比较 字符 ...
- Python中字符串的一些操作
Python中字符串的切片 >>> str1 = 'I love you' >>> str1[:6] 'I love' Python中字符串的索引 >> ...
- 贝斯狸的 Python 之旅 -- 深入切片操作及原理
我首先通过 input() 函数,接收了外部输入字符串,然后通过 list 函数的切片,实现了回文数,代码真的好简洁,我自己都佩服我自己,我也不知道小组长会问我切片原理,我好无奈呀. s = inpu ...
- python赋值字符串的切片_python基础知识之字符串
字符串 凡是用引号(包括单引号.双引号.三引号引起来的都是字符串,其中单引号和双引号没有任何区别,可嵌套使用,多因好用于创建多行字符串,并且可赋值给变量) 字符串的索引与切片 a = 'abcdefg ...
- Python入门--字符串的分割操作,split,rsplit
#字符串劈分操作 #split()-->从字符串的左边开始劈分,默认的劈分字符是 空格字符串,返回的值都是一个列表 #通过参数sep指定劈分字符串的劈分符 #通过参数maxplit指定劈分字符串 ...
- Python入门--字符串内容对齐操作center,ljust,rjust,zfill
#字符串内容对齐操作(类似于word左对齐,右对齐,居中对齐) #center()-->居中对齐,第1个参数指定宽度,第2个参数指定填充符,第二个参数是可选的,默认是空格 #如果设置宽度小于实际 ...
- Python入门--字符串的查询操作,find,rfind,index,rindex
#字符串的查询操作 #index()-->查找子串substr第一次出现的位置,返回这个子串第一个字母的索引 # 如果查找的子串不存在时,抛出ValueError #rindex()--> ...
- python入门--字符串,切片
1,python关键字 2,代码的缩进(有冒号, 下一行空格) 注意下面 3,python多行语句 4,python空行 类与函数间空行,方法与方法间空行,函数与函数空行. 5,控制台输入 下面的是输 ...
最新文章
- Win10下VisualStudio2019安装及测试
- 【偶尔一道ctf】xctf adword mobile easy-apk
- iftop 流量监控
- Qt文档阅读笔记-FileDialog QML Type官方解析与实例
- SPS技术体系之一-----程序文件和IIS配置
- eclipse远程发布代码的方法(SSH自动同步)
- oracle查询日志空间大小,ORACLE 管理 日志与空间
- 传染病模型(4)——SIRS模型和SIER模型及matlab具体程序
- 想转行学IT,到底要不要去培训机构?
- 修改Google浏览器默认打开是金山毒霸网址
- mysql语句占位符_sql语句中的占位符?有什么作用
- 【转】中国人唯一不认可的成功——就是家庭的和睦,人生的平淡
- 误差棒是什么?误差柱状图如何做?
- CentOS7中文输入法,拼音输入法
- 倒计时1天丨相信边缘的力量!
- 产品的道、法、术(道篇)——老吴说产品
- mac 平台显示歌词最好的音乐播放器软件 —— Vox + LyricsX
- iOS10会带来哪些新变化?
- pyzbar报错解决方法:WARNING: .\zbar\decoder\pdf417.c:89: <unknown>:
- 西门子HMI使用全局区域指针画面号实现画面跳转