字符串切片 [start:end:step]
1.切片语法
字符串后跟方括号,方括号内写起始索引、结束索引和步长,中间用冒号分隔。三个参数都可以省略。切片返回新字符串,原字符串不变。
字符串[起始索引:结束索引:步长]
2.三个参数的含义
起始索引表示从哪个位置开始截取(包含该位置)。
结束索引表示截取到哪个位置停止(不包含该位置)。
步长表示每隔多少个字符取一个,默认为1。
步长可以是负数,表示反向取。
3.省略写法
不写起始索引默认从头开始(步长为正时),不写结束索引默认到末尾,不写步长默认为1。只写一个冒号 [:] 表示复制整个字符串。两个冒号 [::] 也可以。
4.切片不越界
与索引不同,切片指定的范围超出字符串实际长度时不会报错,Python会自动调整到边界。空字符串取不到任何内容时返回空字符串。
5.步长为正
从起始索引开始,向右逐个取字符,直到到达或越过结束索引。
起始索引应小于结束索引,否则结果为空字符串。
6.步长为负
从起始索引开始,向左逐个取字符,直到到达或越过结束索引。
起始索引应大于结束索引,否则结果为空字符串。
[::-1]是最常用的反转字符串写法。
7.正向索引与反向索引混用
切片的起始和结束索引可以一个用正向索引、一个用反向索引。
只要起始索引对应的字符在结束索引对应的字符之前(步长为正时),就能正确截取。
8.切片应用
常用于提取子串、反转字符串、每隔一定步长取样、去掉开头或结尾若干字符等。配合input()可以灵活处理用户输入的任意位置内容。
实例1和结果1
文字="Python编程学习"
print("原字符串:", 文字)
print("前6个字符:", 文字[:6])
print("后2个字符:", 文字[-2:])
print("第3到第6个字符:", 文字[2:6])
print("反转:", 文字[::-1])
print("每隔2个取一个:", 文字[::2])
'''运行结果
原字符串:Python编程学习
前6个字符:Python
后2个字符:学习
第3到第6个字符:thon
反转:习学程编nohtyP
每隔2个取一个:Pto编学'''
实例2和结果2
身份证="440600200507156524"
出生日期=身份证[6:14]
年=出生日期[:4]
月=出生日期[4:6]
日=出生日期[6:8]
print("出生日期:", 年, "年", 月, "月", 日, "日", sep="")
'''运行结果
出生日期:2005年07月15日'''
实例3和结果3
文件名="课程笔记.txt"
扩展名=文件名[-4:]
名称=文件名[:-4]
print("完整文件名:",文件名)
print("扩展名:",扩展名)
print("名称:",名称)
'''运行结果
完整文件名:课程笔记.txt
名称:课程笔记
扩展名:.txt
'''