25. Python 字符串的切片方法
25. Python 字符串的切片方法
文章目录
- 25. Python 字符串的切片方法
- 1. 索引取值知识回顾
- 2. 什么是切片
- 3. 切片的语法
- 4. 切片示例
- 4.1 步长为1的切片取值
- 4.2 步长为2的切片取值
- 4.3 省略开始索引
- 4.4 省略结束索引
- 4.5 步长为-2
- 5. 课堂练习
- 6. 总结
1. 索引取值知识回顾
【索引取值语法】
字符串索引取值由3部分构成:
- 字符串变量名或者字符串本身。
- 英文中括号。
- 索引。
【代码示例】
# 将字符串ABCDEFG赋值给变量string
string = 'ABCDEFG'# 取字符串的第1个元素
# 变量名string ;英文中括号;索引为0
print(string [0])
【终端输出】
A
2. 什么是切片
索引取值可以从字符串中取出1个字符。
如果要从字符串中取出多个字符,可以用字符串的切片方法。
【备注】上述图片来自关东升的《看漫画学Python》。
3. 切片的语法
【语法】
字符串[star:end:step]
字符串[开始字符:结束字符:步长]
字符串切片取值由4部分构成:
字符串变量名或者字符串本身。
英文中括号。
3个参数。
3个参数之间用英文冒号分隔。
参数start:表示要取的第1字符的索引(包括该字符),如果不指定,则默认为
0
。参数end:表示要取的最后一个字符的索引(不包括该字符),如果不指定,则默认为字符串的长度。
参数step:表示切片的步长。如果省略,则默认为1,当省略该步长时,最后一个冒号也可以省略。
步长我的理解就是向前或向后走几步,可以是正整数,也可以是负整数。
步长为1,表示向前走1步,那就是依次取值。
步长为2,表示一次性向前走2步,那就是要跳过1个字符。
步长为-2,表示一次性向后退2步,即从右往左跳过1个字符。
【重点提示】切片取值时包括开始字符,不包括结束字符,简单记忆为含前不含后
。
4. 切片示例
4.1 步长为1的切片取值
# 将字符串"星河滚烫你是人间理想"赋值给变量a
a = "星河滚烫你是人间理想"# 从第3个字符开始,第7个字符结束,步长为1
print(a[2:6:1])
【终端输出】
滚烫你是
【2:6:1代码解析】
start=2即开始字符的索引为2,索引2对应字符串的第3个元素,即字符滚
。
end=6即结束字符的索引为6,索引6对应字符串的第7个元素,即字符人
。
step=1即字符串间隔为1,间隔为1表示向前走一步,中间不用跳过字符。
含前不含后
即取前面的字符滚
,不取后面的字符人
。
因此取到的值为滚烫你是
。
【步长为1时可以省略不写】
# 将字符串"星河滚烫你是人间理想"赋值给变量a
a = "星河滚烫你是人间理想"# 从第3个字符开始,第7个字符结束,步长为1
print(a[2:6])
【终端输出】
滚烫你是
上述代码省略了步长,因此默认步长为1。
【温馨提示】当省略步长时,最后一个冒号也可以省略。
4.2 步长为2的切片取值
# 将字符串"星河滚烫你是人间理想"赋值给变量a
a = "星河滚烫你是人间理想"# 从第3个字符开始,第7个字符结束,步长为2
print(a[2:6:2])
【终端输出】
滚你
【2:6:2代码解析】
start=2即开始字符的索引为2,索引2对应字符串的第3个元素,即字符滚
。
end=6即结束字符的索引为6,索引6对应字符串的第7个元素,即字符人
。
step=2即字符串间隔为2,间隔为2表示一次性往前走2步,取值时跳过1个字符。
含前不含后
即取前面的字符滚
,不取后面的字符人
。
因此取到的值为滚你
。
4.3 省略开始索引
# 将字符串"星河滚烫你是人间理想"赋值给变量a
a = "星河滚烫你是人间理想"# 默认索引从0开始
print(a[:6])
【终端输出】
星河滚烫你是
【:6代码解析】
冒号前没有数字,表示省略开始索引。
数字6后面没有冒号和数字,表示省略步长。
start=0,没有开始索引,索引默认从0开始,索引0对应的字符串的第1个字符,即字符星
。
end=6即结束字符的索引为6,索引6对应字符串的第7个元素,即字符人
。
step=1即字符串间隔为1,间隔为1表示向前走一步,中间不用跳过字符。
含前不含后
即取前面的字符星
,不取后面的字符人
。
因此取到的值为星河滚烫你是
。
4.4 省略结束索引
# 将字符串"星河滚烫你是人间理想"赋值给变量a
a = "星河滚烫你是人间理想"# 没有结束索引,默认到整个字符串结尾
print(a[6:])
【终端输出】
人间理想
【6:代码解析】
冒号后面没有数字表示省略结束索引,默认步长为1。
start=6即开始字符的索引为6,索引6对应字符串的第7个元素,即字符人
。
end:如果不指定,则默认为整个字符串的长度。
step=1即字符串间隔为1,间隔为1表示向前走一步,中间不用跳过字符。
【温馨提示】结束索引默认的情况下可以取到字符串的最后一个字符。
因此取到的值为人间理想
。
4.5 步长为-2
# 将字符串"星河滚烫你是人间理想"赋值给变量a
a = "星河滚烫你是人间理想"# 从倒数第2个字符开始,到正数第3个字符结束;步长为-2
print(a[-2:2:-2])
【终端输出】
理人你
【-2:2:-2代码解析】
start=-2即开始字符的索引为-2,索引-2对应字符串的倒数第2个元素,即字符理
。
end=2即结束字符的索引为2,索引2对应字符串的第3个元素,即字符滚
。
step=-2即字符串间隔为-2,间隔为-2表示一次性往后退2步,取值时跳过1个字符。
步长为负数表示从右往左走。
因此取到的值为理人你
。
5. 课堂练习
【练习1】
中国居民身份证号码中的前2位数字代表省份。
取出代表省份的前2位数。
# 将身份证号码赋值给变量id_card
id_card = "533001199901013029"# 方法1:开始索引为0,结束索引为2,取字符串的第1和第2个字符
print(id_card[0:2])# 方法2:开始索引为0可以不写
print(id_card[:2])
【终端输出】
53
53
【练习2】
取出身份证号码中的出生年月日。
# 将身份证号码赋值给变量id_card
id_card = "533001199901013029"# 方法1:开始索引为6,结束索引为14
print(id_card[6:14])# 方法1:开始索引为-12,结束索引为-4
print(id_card[-12:-4])
【终端输出】
19990101
19990101
6. 总结
【取值技巧】
前加1,后不变
前加1,后不变
前加1,后不变
【例如】
【0:2】表示取第1个到第2个字符。
【1:5】表示取第2个到第5个字符。
25. Python 字符串的切片方法相关推荐
- python加号换行,Python字符串拼接六种方法介绍
Python字符串拼接的6种方法: 1.加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用"+"来连接两个字符串: prin ...
- Python:字符串中的方法--strip()
Python:字符串中的方法–strip()(超详细版) 前言 今天突然意识到,我学习爬虫到今天一直很少用到Python基础的东西,就比如说是字符串的一些方法,索性就带着大家一起复习一下Python字 ...
- python字符串出栈方法_Python 实现字符串反转的9种方法
在做leetcode的试题中,做到反转整数,就涉及到字符串反转,为了尽可能可以写出更多的方法,于是写下这篇文章 样例:如 a='123456789' 反转成 a='987654321' 第一种方法:使 ...
- 额外学习:python字符串的各种方法
str_a = 'Python is a widely' str_b = ' by Guido van Rossum in {year} ' str_c = 'A Python Software Fo ...
- Python字符串的表示方法
字符串的表示方法 基本表示方法 字符串有多种形式,可以使用单引号('...'),双引号("...")都可以获得同样的结果.反斜杠 \ 可以用来转义: print('"Is ...
- python字符串出栈方法_python字符串常用方法
1. isalnum() :判断字符串所有的字符都是字母或者数字.返回true和false In [1]: str1='jiangwei520' In [2]: str2='jiang wei' In ...
- python字符串内置方法
网上已经有很多,自己操作一遍,加深印象. dir dir会返回一个内置方法与属性列表,用字符串'a,b,cdefg'测试一下 dir('a,b,cdefg') 得到一个列表 ['__add__','_ ...
- 7.python字符串-内置方法分析
上篇对python中的字符串内置方法进行了列举和简单说明,但这些方法太多,逐一背下效率实在太低,下面我来对这些方法按照其功能进行总结: 1.字母大小写相关(中文无效) 1.1 S.upper() -& ...
- python字符串常用的方法_python字符串常用方法
1. isalnum() :判断字符串所有的字符都是字母或者数字.返回true和false In [1]: str1='jiangwei520' In [2]: str2='jiang wei' In ...
最新文章
- 电子学会青少年编程等级考试Python案例10
- fb驱动安装linux系统,drm 驱动是如何创建 fb device 的
- java.lang.NoClassDefFoundError: org/springframework/boot/context/embedded/FilterRegistrationBean
- 结巴分词优点_中文分词概述及结巴分词原理
- new Fiori 2.0 theme sap_belize
- CF1034E Little C Loves 3 III(神仙构造+FWT_OR卷积)
- 必须建筑师附体!像盖大楼那样打造数据即服务
- 微信公众号每次调用接口正确或错误的返回码
- d3.js中点可以用图片吗_WebGL 直线直吗?
- Mono 基于Jexus发布,创建中文文件名乱码及解决办法
- 如何在PHP中获得有用的错误消息?
- mysql java 社工库_社工库源码 汇总 持续更新
- ISSCC 2017论文导读 Session 14 Deep Learning Processors,A 2.9TOPS/W Deep Convolutional Neural Network
- 图形化开发(五)042-Three.js之Camera相机——正交相机和透视相机的对比
- CCproxy 设置代理服务器。
- r340服务器怎么接显示器,笔记本电脑如何连显示器_笔记本怎么链接显示器
- 美大学推开源赞助计划 DIY机器人你也办得到
- C语言逗号表达式赋值、野指针成因、用户标识符、字符串赋值的几个概念
- vue-cli使用ESLint记录
- J2EE项目中异常的设计与处理