对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。

  • 切片 方法适用于 字符串列表元组

    • 切片 使用 索引值 来限定范围,从一个大的 字符串切出 小的 字符串

    • 列表元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据

    • 字典 是一个 无序 的集合,是使用 键值对 保存数据

字符串[开始索引:结束索引:步长]

注意

  1. 指定的区间属于 左闭右开[开始索引, 结束索引) => 开始索引 >= 范围 < 结束索引

    • 起始 位开始,到 结束位的前一位 结束(不包含结束位本身)

  2. 从头开始,开始索引 数字可以省略,冒号不能省略

  3. 到末尾结束,结束索引 数字可以省略,冒号不能省略

  4. 步长默认为 1,如果连续切片,数字和冒号都可以省略

索引的顺序和倒序

  • 在 Python 中不仅支持 顺序索引,同时还支持 倒序索引

  • 所谓倒序索引就是 从右向左 计算索引

    • 最右边的索引值是 -1,依次递减

演练需求

    1. 截取从 2 ~ 5 位置 的字符串

    1. 截取从 2 ~ 末尾 的字符串

    1. 截取从 开始 ~ 5 位置 的字符串

    1. 截取完整的字符串

    1. 从开始位置,每隔一个字符截取字符串

    1. 从索引 1 开始,每隔一个取一个

    1. 截取从 2 ~ 末尾 - 1 的字符串

    1. 截取字符串末尾两个字符

    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之字符串的切片操作相关推荐

  1. Python入门--字符串的切片操作

    #字符串的切片操作 #字符串是不可变对象 #不具备增删改等操作 #切片操作将产生新的对象 #hello,python #0,1,2,3,4,5,6,7,8,9,10,11 #s[:5]-->he ...

  2. Python中字符串的迷幻操作-----驻留机制的理解

    文章目录 驻留机制 字符串 什么是字符串驻留机制呐 驻留机制的优点 字符串查询操作 字符串大小写转换操作 字符串内容对齐操作 字符串的切割操作 字符串判断的方法 字符串的替换合并操作 字符串比较 字符 ...

  3. Python中字符串的一些操作

    Python中字符串的切片 >>> str1 = 'I love you' >>> str1[:6] 'I love' Python中字符串的索引 >> ...

  4. 贝斯狸的 Python 之旅 -- 深入切片操作及原理

    我首先通过 input() 函数,接收了外部输入字符串,然后通过 list 函数的切片,实现了回文数,代码真的好简洁,我自己都佩服我自己,我也不知道小组长会问我切片原理,我好无奈呀. s = inpu ...

  5. python赋值字符串的切片_python基础知识之字符串

    字符串 凡是用引号(包括单引号.双引号.三引号引起来的都是字符串,其中单引号和双引号没有任何区别,可嵌套使用,多因好用于创建多行字符串,并且可赋值给变量) 字符串的索引与切片 a = 'abcdefg ...

  6. Python入门--字符串的分割操作,split,rsplit

    #字符串劈分操作 #split()-->从字符串的左边开始劈分,默认的劈分字符是 空格字符串,返回的值都是一个列表 #通过参数sep指定劈分字符串的劈分符 #通过参数maxplit指定劈分字符串 ...

  7. Python入门--字符串内容对齐操作center,ljust,rjust,zfill

    #字符串内容对齐操作(类似于word左对齐,右对齐,居中对齐) #center()-->居中对齐,第1个参数指定宽度,第2个参数指定填充符,第二个参数是可选的,默认是空格 #如果设置宽度小于实际 ...

  8. Python入门--字符串的查询操作,find,rfind,index,rindex

    #字符串的查询操作 #index()-->查找子串substr第一次出现的位置,返回这个子串第一个字母的索引 # 如果查找的子串不存在时,抛出ValueError #rindex()--> ...

  9. python入门--字符串,切片

    1,python关键字 2,代码的缩进(有冒号, 下一行空格) 注意下面 3,python多行语句 4,python空行 类与函数间空行,方法与方法间空行,函数与函数空行. 5,控制台输入 下面的是输 ...

最新文章

  1. Win10下VisualStudio2019安装及测试
  2. 【偶尔一道ctf】xctf adword mobile easy-apk
  3. iftop 流量监控
  4. Qt文档阅读笔记-FileDialog QML Type官方解析与实例
  5. SPS技术体系之一-----程序文件和IIS配置
  6. eclipse远程发布代码的方法(SSH自动同步)
  7. oracle查询日志空间大小,ORACLE 管理 日志与空间
  8. 传染病模型(4)——SIRS模型和SIER模型及matlab具体程序
  9. 想转行学IT,到底要不要去培训机构?
  10. 修改Google浏览器默认打开是金山毒霸网址
  11. mysql语句占位符_sql语句中的占位符?有什么作用
  12. 【转】中国人唯一不认可的成功——就是家庭的和睦,人生的平淡
  13. 误差棒是什么?误差柱状图如何做?
  14. CentOS7中文输入法,拼音输入法
  15. 倒计时1天丨相信边缘的力量!
  16. 产品的道、法、术(道篇)——老吴说产品
  17. mac 平台显示歌词最好的音乐播放器软件 —— Vox + LyricsX
  18. iOS10会带来哪些新变化?
  19. pyzbar报错解决方法:WARNING: .\zbar\decoder\pdf417.c:89: <unknown>:
  20. 西门子HMI使用全局区域指针画面号实现画面跳转

热门文章

  1. java结丹期(11)----javaweb(jstljsp)
  2. 数学建模——智能优化之遗传算法详解Python代码
  3. 攻防世界Reverse第六题open-source
  4. 什么是informer机制
  5. ubuntu中pycharm打不开的的处理方法
  6. optee中的arm64的virt_to_phys的实现
  7. Kali 渗透测试—Metasploit
  8. Android实现文件下载并自动安装apk包
  9. (10)调用门提权(无参数)
  10. win32线程学习总结(临界区,互斥体,事件,信号量)