Python语言及其应用(第2版)习题和实训参考答案-Python语言-4_第1页
Python语言及其应用(第2版)习题和实训参考答案-Python语言-4_第2页
Python语言及其应用(第2版)习题和实训参考答案-Python语言-4_第3页
Python语言及其应用(第2版)习题和实训参考答案-Python语言-4_第4页
Python语言及其应用(第2版)习题和实训参考答案-Python语言-4_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python语言及其应用第4章列表与元组PAGE106PAGE1054.3.2习题1.为什么应尽量从列表的尾部进行元素的增加与删除操作?答:当列表从中间或从头增加或删除元素时,列表对象自动进行内存扩展或收缩,从而保证元素之间没有缝隙,但这涉及到列表元素的大量的移动,效率较低,应尽量从列表尾部进行元素的增加与删除操作以提高处理速度.2.说说列表与元组的共同点和区别。答:列表和元组都属于有序序列,但元组属于不可变序列,元组可用作字典的键,也可以作为集合的元素,而列表则永远都不能当做字典键使用,也不能作为集合中的元素。3.列举列表与元组相同的函数和方法。答:len()、min()、max()、.count()、.index()4.5实训4.5.1实训1:列表一、实训目的1.了解列表的基本操作。2.掌握列表的截取与拼接方法。3.掌握列表的赋值机制。4.学会列表推导式的应用。二、单元练习(一)选择题1.Python列表不包含以下哪个内置函数?(D)A.len() B.max() C.min() D.tuple()E.list()2.列表中可以放多少个字符串?(D) A.1 B.255C.无限个D.由用户自己定义(二)填空题1.已知tmp=['Deris','Weng',2018,2019],请填写下面的空白。

tmp[1]='Weng'

tmp[-1]=2019

tmp[:2]=['Deris','Weng']

tmp[::2]=['Deris',2018]2.请填写Python表达式对应的结果。Python表达式结果len([1,2,3,4,5])5[1,2,3]+[4,5,6,7][1,2,3,4,5,6,7]['123']*4['123','123','123','123']3in[1,2,33,4,5]Falseforxin[1,2,3,4]:print(x)1234三、实训任务任务1:【列表创建的基本操作】1.创建一个空列表alist(用两种方法实现)。程序编写于下方'''

创建1个空列表alist(用两种方法实现)

'''

alist=[]

blist=list()

print(alist)

print(blist)2.创建一个长10000的列表blist(列表元素内容为从1开始的整数)。程序编写于下方'''

创建一个长10000的列表blist(列表元素内容为从1开始的整数)。

'''

alist=[i+1foriinrange(10000)]

print(alist)

print(len(alist))3.创建一个长10000的列表clist(列表元素内容均为1)。程序编写于下方'''

创建一个长10000的列表clist(列表元素内容均为1)。

'''

alist=[1foriinrange(10000)]

print(alist)

print(len(alist))4.编写程序,用户输入一个列表和两个整数作为下标,然后使用切片获取并输出列表中介于两个下标之间的元素组成的子列表。例如,用户输入[1,2,3,4,5,6]和2,5,程序输出[3,4,5,6]。程序编写于下方'''

编写程序,用户输入一个列表和两个整数作为下标,

然后使用切片获取并输出列表中介于两个下标之间的元素组成的子列表。

例如,用户输入[1,2,3,4,5,6]和2,5,

程序输出[3,4,5,6]。

'''

alist=input('请输入列表:')

blist=alist[1:-1].split(',')

foriinrange(len(blist)-1):

blist[i]=eval(blist[i])

a=eval(input('请输入下标1:'))

b=eval(input('请输入下标2:'))

print(blist[a:b+1])任务2:【列表的截取与拼接】编写下列代码,输出结果,并说明原因。12l=[iforiinrange(0,15)]print(l[::2])结果:[0,2,4,6,8,10,12,14]12l=[iforiinrange(0,15)]print(l[::-2])结果:[14,12,10,8,6,4,2,0]说明原因:列表切片的过程中,第三个参数表示切片步长,步长为正,正向切片。步长为负,反向切片。任务3:【二维列表】编写下列代码,输出结果。12345list_2d=[[0foriinrange(5)]foriinrange(5)]

list_2d[0].append(3)

list_2d[0].append(5)

list_2d[2].append(7)

print(list_2d)结果:[[0,0,0,0,0,3,5],[0,0,0,0,0],[0,0,0,0,0,7],[0,0,0,0,0],[0,0,0,0,0]]任务4:【列表的赋值机制】写出下列语句执行后的结果。123456a=[1,2,3]

b=a

c=[]

c=a

d=a[:]

print(a,b,c,d)结果为:[1,2,3][1,2,3][1,2,3][1,2,3]继续执行如下语句:12b[0]='b'

print(a,b,c,d)结果为:['b',2,3]['b',2,3]['b',2,3][1,2,3]继续执行如下语句:1print(id(a),id(b),id(c),id(d))结果为:4315675216431567521643156752164314445056继续执行如下语句:12c[0]='c'

print(a,b,c,d)结果为:['c',2,3]['c',2,3]['c',2,3][1,2,3]继续执行如下语句:12d[0]='d'

print(a,b,c,d)结果为:['c',2,3]['c',2,3]['c',2,3]['d',2,3]继续执行如下语句:1print(id(a),id(b),id(c),id(d))结果为:4315675216431567521643156752164314445056请对上述实验过程进行总结。总结:当对变量进行赋值,如果直接将某个列表的值赋值给该变量,则是一个引用赋值的过程,该过程会直接将源列表的内存地址直接传递给新变量,导致其中一个列表值发生改变后,另一个列表值也会跟着发生改变任务5:【列表与循环的混合使用】1.输出结果:[1lovepython,2lovepython,3lovepython,,10lovepython]程序编写于下方'''

输出结果:[1lovepython,2lovepython,3lovepython,,10lovepython]

'''

alist=['{:d}lovepython'.format(i+1)foriinrange(10)]

print(alist)2.输出结果:[(0,0),(0,2),(2,0),(2,2)]程序编写于下方'''

输出结果:[(0,0),(0,2),(2,0),(2,2)]

'''

aList=[]

foriinrange(0,3,2):

forjinrange(0,3,2):

aList.append((i,j))

print(aList)四、拓展任务任务1:【列表推导式应用1】使用列表推导式生成100以内的所有偶数。程序编写于下方'''

使用列表推导式生成100以内的所有偶数。

'''

aList=[iforiinrange(2,101,2)]

print(aList)任务2:【列表推导式应用2】使用列表推导式实现矩阵转置。程序编写于下方'''

使用列表推导式实现矩阵转置。

'''

aList=[[1,2,3],[1,2,3],[1,2,3]]

bList=[]

xList=[]

foriinrange(0,3):

forjinrange(0,3):

xList.append(aList[j][i])

bList.append(xList)

xList=[]

print('转换之前:{}转换之后:{}'.format(aList,bList))

任务3:【加密算法】请按照加密规则实现加密算法,加密规则如下:每位数字都加上7,然后用它除以10的余数代替该数字,再将第一位和第三位交换,第二位和第四位交换。程序编写于下方'''

请按照加密规则实现加密算法,

加密规则如下:每位数字都加上7,

然后用它除以10的余数代替该数字,

再将第一位和第三位交换,第二位和第四位交换。

'''

defget_password(pasw):

num=0

password=''

Word=list(pasw)

foriinWord:

mod=(eval(i)+7)%10

Word[num]=str(mod)

num+=1

a=Word[0];Word[0]=Word[2];Word[2]=a

b=Word[1];Word[1]=Word[3];Word[3]=b

forjinWord:

password=password+j

returnpassword

word=input('请输入一个四位数的密码:')

print('加密后的密码是:{}'.format(get_password(word)))4.5.2实训2:元组一、实训目的1.掌握元组的基本操作。2.掌握列表与元组的相互转化。二、单元练习(一)选择题1.Python元组不包含以下哪个内置函数?(E) A.len() B.max() C.min() D.tuple()E.以上都是2.以下哪个选项输出值为3?(A) A.len((1,2,3)) B.3in(1,2,3) C.forxin(1,2,3): printx3.tuple函数可以达到什么效果?(D) A.计算元组元素个数 B.返回元组中元素最大值

C.将元组转换成列表 D.将列表转换成元组(二)填空题1.已知tmp=['Deris','Weng',2018,2019],请填写下面的结果。

tmp[1]='Weng'

tmp[-1]=2019

tmp[:2]=['Deris','Weng']

tmp[::2]=['Deris',2018]tmp[::-1]=[2019,2018,'Weng','Deris']2.请描述tup(50)和tup(50,)的区别。(50)表示数字,(50,)表示元组3.请填写Python表达式对应的结果。Python表达式结果len((1,2,3,4,5))5(1,2,3)+(4,5,6,7)(1,2,3,4,5,6,7)(123)*4492(123,)*4(123,123,123,123)3in(1,2,33,4,5)Falseforxin(1,2,3,4):print(x)12

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论