这几天在看《Python基础教程(第2版•修订版)》,期间2-3的代码越看越感觉有问题……奈何宿舍晚上准时断网,只能今早起来写……
代码清单2-3 序列(字符串)乘法示例 是一个很简单的例子,和ACM里的打印字符串的题类似。仔细看看书上的代码,就会发现该例子的运行情况和书本上的并不一致,如下图:
书本上的代码:
sentence = raw_input("Sentence: ")
screen_width = 80
text_width = len(sentence)
box_width = text_width + 6
left_margin = (screen_width - box_width) // 2
print
print ' ' * left_margin + '+' + '-' * (box_width-2) + '+'
print ' ' * left_margin + '|' + ' ' * text_width + '|'
print ' ' * left_margin + '|' + sentence + '|'
print ' ' * left_margin + '|' + ' ' * text_width + '|'
print ' ' * left_margin + '+' + '-' * (box_width-2) + '+'
print
遂添加了几处,改动后的代码如下:
sentence = raw_input("Sentence: ")
screen_width = 80
text_width = len(sentence)
box_width = text_width + 18
left_margin = (screen_width - box_width) // 2
print
print ' ' * left_margin + '+' + '-' * (box_width-2) + '+'
print ' ' * left_margin + ' ' * 7 + '|' + ' ' + ' ' * text_width + ' ' + '|'
print ' ' * left_margin + ' ' * 7 + '|' + ' ' + sentence + ' ' + '|'
print ' ' * left_margin + ' ' * 7 + '|' + ' ' + ' ' * text_width + ' ' + '|'
print ' ' * left_margin + '+' + '-' * (box_width-2) + '+'
print
运行情况如下图: