- 帖子
- 31
- 精华
- 0
- 积分
- 111
- 阅读权限
- 20
- 注册时间
- 2021-2-8
- 最后登录
- 2021-4-13
|
呼!整了一上午,终于弄出来了- import re
- def hs_hang(text_):
- text = re.findall(r'\b.*? .*? |\b\S*?[。,?!]{1}',text_)
- text[0] = text[0].strip() #为了使最右边一列不会多出一个空格、影响美观
- #print(text)
- hangshu = []
- hang_dic = {}
- keynum = 0
- for a in text:
- b = re.findall(r'.',a)
- hangshu.append(len(b))
- hang = max(hangshu)
- while text:
- keynum += 1
- hang_dic[keynum] = re.findall(r'.',text.pop(-1))
- #print(hang_dic)
- #print(hang)
- return hang,hang_dic,text
- #下面这个函数可以使每列诗句和它们之间的分隔符全都等长,避免错位的情况
- def hs_buquan(hang_dic,hang):
- global key
- for key in hang_dic.keys():
- if len(hang_dic[key]) < hang:
- for i in range(hang - len(hang_dic[key])):
- hang_dic[key] += ' '
- #这个空格很关键,因为中英文标点大小的不同,这个空格要用全角
- #print(hang_dic)
- return hang_dic
- def hs_paixu(hang_dic,hang):
- global e
- for e in range(hang):
- line = []
- for value in hang_dic.values():
- line.append(value[e])
- print('|'.join(line))
- #用的时候用函数guwen就彳亍了
- def guwen(shuru): #输入参数时请不要用英文的字母和标点
- hang,hang_dic,text = hs_hang(shuru)
- hang_dic = hs_buquan(hang_dic,hang)
- hs_paixu(hang_dic,hang)
复制代码 写这程序最让我惊喜的就是,用全角输入空格能解决评论区里很常见的错位问题,不管是句句字数一样还是不一样都能整齐打印
老师能帮我看看吗?
暂时学到的知识还不是很多,掌握得也不是很熟练,其他人的程序看得不是很懂
老师有什么建议的话尽管提,谢谢啦
|
|