【Python】利用字符串切片输出回文诗


什么是切片

切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。

切片的语法:[起始:结束:步长]
格式: [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("------------------------")
春 景 诗
莺啼岸柳弄春晴,
柳弄春晴夜月明。
明月夜晴春弄柳,
晴春弄柳岸啼莺。
------------------------
夏 景 诗
香莲碧水动风凉,
水动风凉夏日长。
长日夏凉风动水,
凉风动水碧莲香。
------------------------
秋 景 诗
秋江楚雁宿沙洲,
雁宿沙洲浅水流。
流水浅洲沙宿雁,
洲沙宿雁楚江秋。
------------------------
冬 景 诗
红炉透炭炙寒风,
炭炙寒风御隆冬。
冬隆御风寒炙炭,
风寒炙炭透炉红。
------------------------
  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慢热型网友.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值