很多同学在学习了Python最基本的一些语法,比如程序控制语句,各种数据容器之后,会有疑惑,这些究竟怎么应用? 我们今天就以诗歌排版为例,看看最基本的Python的知识,如何发挥巨大的威力!

上面这首古诗,保存在一个文本文件中,没有分段,也没有标点。现在希望输出为下图所示的样子,每2句一个段落,并且用逗号和句号进行分隔,该如何完成呢?
方法是首先将文档内容读入,此时是作为一个字符串来处理,使用for遍历字符串,并用print(),打印每个字符,如果字符的排位是14的倍数,则以句号和回车符结束,如果是7的倍数,则以逗号结束,其他的情况,末尾不添加字符,代码如下(已经将python文件和要处理的文本文件置于同一个文件夹中):
with open('和子由渑池怀旧.txt',encoding='utf8') as poem: cotent=poem.read() for i in range(len(cotent)): if (i+1) % 14 ==0: print(cotent[i],end='。\n') elif (i+1) % 7 ==0: print(cotent[i],end=',') else: print(cotent[i],end='')
其中i为诗中每个字符的下标,范围为从0到55,i+1就是该字在诗中的排位,如果排位为14或7的倍数,就应用相应的结束标记。另外需要注意,文字的编码需要使用utf8,这样才能正确打开,运行代码,就得到了想要的结果。
可能有的同学会说,其实要达到上面的目标,在Word中也不复杂,可如果我们的诗歌不是七律,而是“长恨歌”呢?with open('长恨歌.txt',encoding='utf8') as poem: cotent=poem.read() for i in range(len(cotent)): if (i+1) % 14 ==0: print(cotent[i],end='。\n') elif (i+1) % 7 ==0: print(cotent[i],end=',') else: print(cotent[i],end='')
只需要将上述代码中的文件名改为“长恨歌”就行了。运行的结果如下图(内容太长,截取片段):

通过上面的例子,大家是不是更能体会不同工具该在何种情境下使用?有兴趣的同学也可以想一下,如何从右到左竖行排版?
学习Python,并通过微软MTA-Pyhton 和ICTP-Python国际认证,请关注:
