Python 基础教程(3rd ed)(31):列表和元组 2.2.4

阅读数:20 2019 年 10 月 26 日 09:51

Python基础教程(3rd ed)(31):列表和元组 2.2.4

(通用的序列操作:乘法)

将序列与数 _x_ 相乘时,将重复这个序列 _x_ 次来创建一个新序列:

复制代码
>>> 'python' * 5
'pythonpythonpythonpythonpython'
>>> [42] * 10
[42, 42, 42, 42, 42, 42, 42, 42, 42, 42]

None、空列表和初始化

空列表是使用不包含任何内容的两个方括号([])表示的。如果要创建一个可包含 10 个元素的列表,但没有任何有用的内容,可像前面那样使用[42]*10。但更准确的做法是使用[0]*10,这将创建一个包含 10 个零的列表。然而,在有些情况下,你可能想使用表示“什么都没有”的值,如表示还没有在列表中添加任何内容。在这种情况下,可使用None。在 Python 中,None表示什么都没有。因此,要将列表的长度初始化为 10,可像下面这样做:

复制代码
>>> sequence = [None] * 10
>>> sequence
[None, None, None, None, None, None, None, None, None, None]

代码清单 2-3 所示的程序在屏幕上打印一个由字符组成的方框。这个方框位于屏幕中央,宽度取决于用户提供的句子的长度。这些代码看似很复杂,但基本上只使用了算术运算:计算需要多少个空格、短划线等,以便将内容显示到正确的位置。

代码清单 2-3 序列(字符串)乘法运算示例

复制代码
# 在位于屏幕中央且宽度合适的方框内打印一个句子
sentence = 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: He's a very naughty boy!
{1}
+-----------------------------+
| |
| He's a very naughty boy! |
| |
+-----------------------------+

评论

发布