Python从菜鸟到高手(14):序列的加法和乘法

1 序列的加法

  序列也可以相加,但要注意,这里的相加,并不是相对应的序列元素值相加,而是序列首尾相接。由于字符串属于字符序列,所以字符串相加也可以看做是序列相加。但一个字符串不能和一个序列相加,否则会抛出异常。

  本例演示了两个序列之间的加法,以及序列和字符串之间相加后会抛出异常。

print([1,2,3] + [6,7,8])    # 运行结果:[1,2,3,6,7,8]
print("Hello" + " world")   # 运行结果:Hello world
print([1,2,3] + ["hello"])  # 把字符串作为序列的一个元素,运行结果:[1,2,3,"hello"]
# 运行结果:[1,2,3,‘h‘, ‘e‘, ‘l‘, ‘l‘, ‘o‘]
print([1,2,3] + [‘h‘, ‘e‘, ‘l‘, ‘l‘, ‘o‘])
print([1,2,3] + "hello")    # 抛出异常,序列不能和字符串直接相加

  程序运行结果如下图所示。

  我们可以看到,上面代码中运行最后一条语句会抛出异常,原因是序列和字符串相加。而要想让“hello”和序列相加,需要将“hello”作为序列的一个元素,如["hello"],然后再和序列相加。两个相加的序列元素的数据类型可以是不一样的,例如,上面代码中第3行将一个整数类型的序列和一个字符串类型的序列相加,这两个序列会首尾相接连接在一起。

2. 序列的乘法

  如果用数字n乘以一个序列会生成新的序列,而在新的序列中,原来的序列将被重复n次。如果序列的值是None(Python语言内建的一个值,表示“什么都没有”),那么将这个序列与数字n相乘,假设这个包含None值的序列长度是1,那么就会产生占用n个元素空间的序列。

  本例通过字符串与数字相乘,复制字符串,通过将序列与数字相乘,复制序列。

# 字符串与数字相乘,运行结果:hellohellohellohellohello
print(‘hello‘ * 5)
# 序列与数字相乘,运行结果:[20, 20, 20, 20, 20, 20, 20, 20, 20, 20]
print([20] * 10)
# 将值为None的序列和数字相乘,运行结果:[None, None, None, None, None, None]
print([None] * 6)

程序运行结果如下图所示。

  本例会利用序列的乘法生成一个611二维的序列,序列的每一个元素是一个一维的序列,序列中的每一个元素是空格或星号(),二维序列中的元素,会形成一个由星号(*)组成的正三角形。

spaceNum = 5                # 表示每一行星号一侧最多的空格数,本例是5
i = 1
lineSpaceNum =spaceNum      # 表示当前行的前后空格数
triangle = []                   # 二维列表
# 开始生成三角形
while lineSpaceNum >= 0:
    # 生成星号左侧空格序列
    leftSpaceList = [‘ ‘] * lineSpaceNum
    # 生成星号列表
    starList = [‘*‘] * (2 * i - 1)
    # 生成星号右侧空格序列
    rightSpaceList = [‘ ‘] * lineSpaceNum
    # 生成每一行的序列
    lineList = leftSpaceList + starList + rightSpaceList
    triangle.append(lineList)
    lineSpaceNum -= 1
    i += 1
for line in triangle:
    print(line)

程序运行结果如下图所示。

《Python从菜鸟到高手》已经出版,开始连载了,购买送视频课程

原文地址:http://blog.51cto.com/androidguy/2174523

时间: 2024-10-03 21:02:06

Python从菜鸟到高手(14):序列的加法和乘法的相关文章

Python从菜鸟到高手(12):通过索引操作序列元素

1.定义序列   本文将介绍一下在Python语言中如何定义序列.定义序列的语法与Java中的数组类似,使用一对中括号将序列中的元素值括起来.下面的例子创建一个元素类型是字符串的序列,实现代码如下: names = ["Bill", "Mary", "Jack"]   同一个序列,不仅可以包含相同类型的值,还可以包含不同类型的值.下面的例子在一个序列中放置不同类型的值,实现代码如下: values = ["Bill", 30,

Python从菜鸟到高手(4):导入Python模块

在Python代码中导入模块需要使用import语句,语法结构如下: import module_name ??引用模块中函数的语法如下: module_name.function_name ??如果在Python程序中大量使用模块中的某些函数,那么每次在调用函数时都要加上"模块名"显得有些麻烦,所以在这种情况下,可以使用from-import-语句将模块中的函数直接暴露出来.该语句的语法结构如下: from module_name import function_name ??如果要

Python从菜鸟到高手(7):字符串

1. 单引号字符串和转义符   字符串与数字一样,都是值,可以直接使用,在Python控制台中直接输入字符串,如"Hello World",会按原样输出该字符串,只不过用单引号括了起来. >>> "Hello World" 'Hello World'   那么用双引号和单引号括起来的字符串有什么区别呢?其实没有任何区别.只不过在输出单引号或双引号时方便而已.例如,在Python控制台输入'Let's go!',会抛出如下的错误. >>&

Python从菜鸟到高手(6):获取用户输入、函数与注释

1. 获取用户输入   要编写一个有实际价值的程序,就需要与用户交互.当然,与用户交互有很多方法,例如,GUI(图形用户接口)就是一种非常好的与用户交互的方式,不过我们先不讨论GUI的交互方式,本节会采用一种原始,但很有效的方式与用户交互,这就是命令行交互方式,也就是说,用户通过命令行方式输入数据,程序会读取这些数据,并做进一步的处理.   从命令行接收用户的输入数据,需要使用input函数.input函数接收一个字符串类型的参数,用于作为输入的提示.input函数的返回值就是用户在命令行中录入

Python从菜鸟到高手(8):print函数、赋值与代码块

1.神奇的print函数 ??print函数相信读者一定对它不陌生,因为在前面的章节,几乎每个例子都使用了print函数,这个函数的功能就是在控制台输出文本.不过print在输出文本时还可以进行一些设置,以及输出多参数字符串. ??如果为print函数传入多个参数值,那么print函数会将所有的参数值首尾相接输出. # 输出结果:a b c d e print("a","b","c","d","e"); ?

Python从菜鸟到高手(10):循环

  我们现在已经知道了如何使用if语句让程序沿着不同的路径执行,不过程序最大的用处就是利用CPU和GPU强大的执行能力不断重复执行某段代码,想想Google的AlphaGo与柯洁的那场人机大战,尽管表面上是人工智能的胜利,其实人工智能只是算法,人工只能算法之所以会快速完成海量的数据分享,循环在其中的作用功不可没.   对于初次接触程序设计的读者,可能还不太理解循环到底什么东西.下面先看一下循环的伪代码. 查看银行卡余额 没有发工资,等待1分钟,继续执行1 Oh,yeah,已经发工资了,继续执行4

Python从菜鸟到高手(11):列表的基础操作

  列表可以使用所有适用于序列的标准操作,例如索引.分片.连接和乘法.但列表还有一些属于自己的操作,如修改列表本身的操作,这些操作包括元素赋值.元素删除.分片赋值以及下一节要将的列表方法. 1. 列表元素赋值   如果要修改列表中的某一个元素,可以像使用数组一样对列表中的特定元素赋值,也就是使用一对中括号指定元素在列表中的索引,然后使用赋值运算符(=)进行赋值.   本例修改了列表s中的前两个元素值. s = ["Bill", "Mike", "John&

《Python从菜鸟到高手》已经出版,购买送视频课程

好消息,<Python从菜鸟到高手>已经出版!!! ??JetBrains官方推荐图书!JetBrains官大中华区市场部经理赵磊作序!送2400分钟同步视频课程!500个案例,400道Python练习题,电子书,10万行源代码,6个实战项目! 本书完整目录 购买地址: 当当 京东 ??在2018-10-15之前在以上地址购买本书,并5分好评以及20字以上评论.除了赠送40小时Python同步视频课程外,还赠送李宁老师任意200元以内的课程或套餐,如果课程或套餐超过200元,直接不差价即可.

Python从菜鸟到高手(2):清空Python控制台

执行python命令会进入Python控制台.在Python控制台中可以用交互的方式执行Python语句.也就是执行一行Python语句,会立刻返回执行结果. ??当Python控制台输入过多的Python语句时,有时需要将这些已经输入的语句和执行结果清空,并重新开始输入Python语句.例如,下图就是一个输入了多条Python语句,并输出相应结果的Python控制台. . ??当然,如果不想看到这些Python语句和输出结果,可以一直按"回车" 键,直到Python控制台中所有的内容