Python基础教程 序列相加&乘法

2.2.3 序列相加

可使用加法运算符来拼接序列。

>>> [1, 2, 3] + [4, 5, 6]

[1, 2, 3, 4, 5, 6]

>>> 'Hello,' + 'world!'

'Hello, world!'

>>> [1, 2, 3] + 'world!'

Traceback (innermost last):

File "

", line 1, in ?

[1, 2, 3] + 'world!'

TypeError: can only concatenate list (not "string") to list

从错误消息可知,不能拼接列表和字符串,虽然它们都是序列。一般而言,不能拼接不同类型的序列。

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!

+-----------------------------+

| |

| He's a very naughty boy! |

| |

+-----------------------------+

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180825G1LPF300?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券