zoukankan      html  css  js  c++  java
  • 代码演练_文字竖排

    题目

    把一段字符串用“右起竖排”的古文格式输出,并以竖线(“|”)符号作为每一列的分隔符。

    例如这段文本:

    静夜思 
    李白
    床前明月光
    疑是地上霜
    举头望明月
    低头思故乡
    

    输出结果:

    低|举|疑|床|李|静
    头|头|是|前|白|夜
    思|望|地|明| |思
    故|明|上|月| | 
    乡|月|霜|光| |
    

    思路

    仔细观察文本,我们就可以发现从下往上依次输出每一行的第一个字,然后是第二个字,以此类推就可以得到“右起竖排”的古文格式。 同时,为了对齐,我们需要把短句用中文全角空格补全,如果句中有英文半角空格,也要替换成中文全角空格。

    zip()函数将每个集合的同位置的元素组成一个元组,函数用法如下:

    zip(...)
        zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]
    

    代码

    # coding:utf-8
    
    text = u'''
            静夜思
            李白
            床前明月光
            疑是地上霜
            举头望明月
            低头思故乡
            '''
    # 中文全角空格
    blank = u'u3000'
    lines = text.splitlines()
    # 去掉首尾空白
    lines = [x.strip() for x in lines]
    # 去掉空元素
    lines = [x for x in lines if x]
    # 将句中的英文半角空格替换成中文全角空格
    lines = [x.replace(' ', blank) for x in lines]
    # 反转句子的顺序
    lines = list(reversed(lines))
    
    # 补足短句
    max_len = max([len(x) for x in lines])
    lines = [x+blank*(max_len-len(x)) for x in lines]
    
    for x in zip(*lines):
        print '|'.join(x)
    
  • 相关阅读:
    maven项目下出现java.lang.ClassNotFoundException: ContextLoader异常
    jquery使用post方法传值
    商品筛选条件
    商品的上架
    使用fckeditor上传多张图片
    多选删除
    升讯威 .Net WinForm 开源控件使用——c#
    设置label(标签)控件的背景颜色为透明
    鼠标拖动控件跟随——C#
    Chart控件系列教程——c#
  • 原文地址:https://www.cnblogs.com/skeeter/p/3493271.html
Copyright © 2011-2022 走看看