先上代码:

txt = ''' 人生得意须尽欢,莫使金樽空对月。
天生我材必有用,千金散尽还复来。
''' linewidth = 30 # 预定的输出宽度 def lineSplit(line): plist = [',', '!', '?', ',', '。
', '!
', '?'] for p in plist: line = line.replace(p, '\n') return line.split('\n')def linePrint(line): global linewidth print(line.center(linewidth, chr(12288))) newlines = lineSplit(txt) for newline in newlines: linePrint(newline)

原始文本利用变量txt保存,程序运行效果如下。
(大概)

>>>                                           人生得意须尽欢                        莫使金樽空对月                                                       天生我材必有用                        千金散尽还复来 

但有时候当每句长度超过变量linewdith后,显示效果并 不好。
这须要修正函数linePrint(),当一个短句 行数超过限定时,分行居中显示。

Python进修笔记十古风诗词

def linePrint(line): global linewidth while len(line) > linewidth: print(line[0:linewidth]) line = line[linewidth:] print(line.center(linewidth, chr(12288)))