设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 41283|回复: 1
打印 上一主题 下一主题

【每日一坑 5】 文字竖排

[复制链接]

0

主题

0

好友

52

积分

注册会员

Rank: 2

楼主
发表于 2020-10-14 14:58:30 |显示全部楼层
本帖最后由 jodie 于 2020-10-14 15:01 编辑
  1. def change_pattern(poem):
  2.     # 分离出 题目,诗人+诗句
  3.     title,poet_n_poem  = poem.split()
  4.     title = title.strip()
  5.     poet_n_poem = poet_n_poem.strip()

  6.     # 存放诗句的列表
  7.     all_lines = []
  8.     # 分离句号
  9.     for one in poet_n_poem.split("。"):
  10.         if ',' in one:
  11.             # 分离逗号
  12.             lines = one.split(",")
  13.             # print(lines)
  14.             # 判断是否是 诗人+诗句,且给每个诗句后面加逗号
  15.             if len(lines[0]) != len(lines[1]):
  16.                 line_len = len(lines[1])
  17.                 poet = lines[0][:len(lines[0])-line_len]
  18.                 lines[0] = lines[0].strip(poet) + ","
  19.                 lines[1] = lines[1] + "。"
  20.                 line_len = line_len + 1
  21.                 all_lines = all_lines + lines
  22.             else:
  23.                 lines[0] = lines[0] + ","
  24.                 lines[1] = lines[1] + "。"
  25.                 all_lines = all_lines + lines


  26.     title_n_poet = title + " " + poet
  27.     title_n_poet_len = len(title_n_poet)
  28.     all_lines.insert(0,title_n_poet)
  29.     all_lines.reverse()

  30.     # 补全空格,使长度一致
  31.     delta = line_len - title_n_poet_len
  32.     # 诗句长度短
  33.     if delta < 0:
  34.         for i in range(0,len(all_lines)-1):
  35.             all_lines[i] = all_lines[i] + abs(delta) * " "
  36.     # 题目+空格+诗人 长度短
  37.     elif delta > 0:
  38.         all_lines[-1] = all_lines[-1] + abs(delta) * " "
  39.     else:
  40.         pass


  41.     # 把诗句的每个字单独出来
  42.     for i in range(0,len(all_lines)):
  43.         all_lines[i] = list(all_lines[i])


  44.     result_list = []
  45.     j = 0
  46.     while j < len(all_lines[0]):
  47.         i = 0
  48.         result_list.append([])
  49.         # for i in range(0,len(all_lines)):
  50.         #     result_list[j].append(all_lines[i][j])
  51.         while i < len(all_lines):
  52.             result_list[j].append(all_lines[i][j])
  53.             i = i + 1
  54.         j=j+1
  55.     # print(result_list)

  56.     for one in result_list:
  57.         string = "|".join(one)
  58.         print(string)



  59. if __name__ == "__main__":
  60.     poem = "锦瑟 李商隐锦瑟无端五十弦,一弦一柱思华年。庄生晓梦迷蝴蝶,望帝春心托杜鹃。沧海月明珠有泪,蓝田日暖玉生烟。此情可待成追忆," \
  61.        "只是当时已惘然。"
  62.     change_pattern(poem)
复制代码

result.jpg (23.73 KB, 下载次数: 430)

result.jpg

回复

使用道具 举报

0

主题

0

好友

52

积分

注册会员

Rank: 2

沙发
发表于 2020-10-14 23:40:51 |显示全部楼层
crossin先生 发表于 2020-10-14 16:36
不错啊

谢谢老师
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-18 22:29 , Processed in 0.019826 second(s), 26 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部