设为首页收藏本站

Crossin的编程教室

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

【每日一坑 5】 文字竖排

[复制链接]

3

主题

1

好友

111

积分

注册会员

Rank: 2

楼主
发表于 2021-2-10 11:36:47 |显示全部楼层
呼!整了一上午,终于弄出来了
  1. import re

  2. def hs_hang(text_):
  3.     text = re.findall(r'\b.*? .*? |\b\S*?[。,?!]{1}',text_)
  4.     text[0] = text[0].strip()  #为了使最右边一列不会多出一个空格、影响美观
  5.     #print(text)
  6.     hangshu = []
  7.     hang_dic = {}
  8.     keynum = 0
  9.     for a in text:
  10.         b = re.findall(r'.',a)
  11.         hangshu.append(len(b))
  12.         hang = max(hangshu)
  13.     while text:
  14.         keynum += 1
  15.         hang_dic[keynum] = re.findall(r'.',text.pop(-1))
  16.     #print(hang_dic)
  17.     #print(hang)
  18.     return hang,hang_dic,text

  19. #下面这个函数可以使每列诗句和它们之间的分隔符全都等长,避免错位的情况
  20. def hs_buquan(hang_dic,hang):
  21.     global key
  22.     for key in hang_dic.keys():
  23.         if len(hang_dic[key]) < hang:
  24.             for i in range(hang - len(hang_dic[key])):
  25.                 hang_dic[key] += ' '
  26.                 #这个空格很关键,因为中英文标点大小的不同,这个空格要用全角
  27.     #print(hang_dic)
  28.     return hang_dic

  29. def hs_paixu(hang_dic,hang):
  30.     global e
  31.     for e in range(hang):
  32.         line = []
  33.         for value in hang_dic.values():
  34.             line.append(value[e])
  35.         print('|'.join(line))

  36. #用的时候用函数guwen就彳亍了
  37. def guwen(shuru):  #输入参数时请不要用英文的字母和标点
  38.     hang,hang_dic,text = hs_hang(shuru)
  39.     hang_dic = hs_buquan(hang_dic,hang)
  40.     hs_paixu(hang_dic,hang)

复制代码
写这程序最让我惊喜的就是,用全角输入空格能解决评论区里很常见的错位问题,不管是句句字数一样还是不一样都能整齐打印

老师能帮我看看吗?

暂时学到的知识还不是很多,掌握得也不是很熟练,其他人的程序看得不是很懂

老师有什么建议的话尽管提,谢谢啦

回复

使用道具 举报

3

主题

1

好友

111

积分

注册会员

Rank: 2

沙发
发表于 2021-2-10 17:17:33 |显示全部楼层
crossin先生 发表于 2021-2-10 16:59
global key
global e
这个是没有必要的

谢谢老师,我会更加努力的,还望老师继续指导
回复

使用道具 举报

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

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

GMT+8, 2024-5-18 21:58 , Processed in 0.017072 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部