什么是切片
切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
切片的语法:[起始:结束:步长]
格式: [start:end :step]
[:] 提取从开头(默认位置0)到结尾(默认位置-1)的整个字符串
[start:] 从start 提取到结尾
[:end] 从开头提取到end - 1
[start:end] 从start 提取到end - 1
[start:end:step] 从start 提取到end - 1,每step个字符提取一个
左侧第一个字符的位置/偏移量为0,右侧最后一个字符的位置/偏移量为-1
示例
str = 'abcdefg'
print(str[1:])
print(str[:-1])
print(str[-1:])
print(str[::-1])
print(str[:])
-------------------------------------------------------------------------------------------
结果
bcdefg
abcdef
g
gfedcba
abcdefg
利用字符串切片输出回文诗
案例一 苏东坡和诗
秦少游送苏小妹: 静思伊久阻归期忆别离时闻漏转
苏小妹送秦少游: 采莲人在绿杨津一阕新歌声漱玉
苏东坡和诗: 赏花归去马如飞酒力微醒时已暮
样例:
静思伊久阻归期,
久阻归期忆别离。
忆别离时闻漏转,
时闻漏转静思伊。
代码实现:
def poem(str):
print(str[0:7] + ',')
print(str[3:10] + '。')
print(str[7:14] + ',')
print(str[10:] + str[0:3] + '。')
print("------------------------")
poem("静思伊久阻归期忆别离时闻漏转")
print("------------------------")
poem("采莲人在绿杨津一阕新歌声漱玉")
print("------------------------")
poem("赏花归去马如飞酒力微醒时已暮")
print("------------------------")
静思伊久阻归期,
久阻归期忆别离。
忆别离时闻漏转,
时闻漏转静思伊。
------------------------
采莲人在绿杨津,
在绿杨津一阕新。
一阕新歌声漱玉,
歌声漱玉采莲人。
------------------------
赏花归去马如飞,
去马如飞酒力微。
酒力微醒时已暮,
醒时已暮赏花归。
-----------------------
案例二 《四时山水诗》
明末浙江才女吴绛雪作《四时山水诗》,诗云:
春 景 诗(莺啼岸柳弄春晴夜月明)
夏 景 诗(香莲碧水动风凉夏日长)
秋 景 诗(秋江楚雁宿沙洲浅水流)
冬 景 诗(红炉透炭炙寒风御隆冬)春景诗
莺啼岸柳弄春晴,
柳弄春晴夜月明。
明月夜晴春弄柳,
晴春弄柳岸啼莺。
代码实现:
def poem(str):
print(str[0:7] + ',')
print(str[3:10] + '。')
print(str[-1:-8:-1] + ',')
print(str[-4:-11:-1] + '。')
print("------------------------")
print("春 景 诗")
poem("莺啼岸柳弄春晴夜月明")
print("------------------------")
print("夏 景 诗")
poem("香莲碧水动风凉夏日长")
print("------------------------")
print("秋 景 诗")
poem("秋江楚雁宿沙洲浅水流")
print("------------------------")
print("冬 景 诗")
poem("红炉透炭炙寒风御隆冬")
print("------------------------")
春 景 诗
莺啼岸柳弄春晴,
柳弄春晴夜月明。
明月夜晴春弄柳,
晴春弄柳岸啼莺。
------------------------
夏 景 诗
香莲碧水动风凉,
水动风凉夏日长。
长日夏凉风动水,
凉风动水碧莲香。
------------------------
秋 景 诗
秋江楚雁宿沙洲,
雁宿沙洲浅水流。
流水浅洲沙宿雁,
洲沙宿雁楚江秋。
------------------------
冬 景 诗
红炉透炭炙寒风,
炭炙寒风御隆冬。
冬隆御风寒炙炭,
风寒炙炭透炉红。
------------------------