Py 语言基础及应用 8_第1页
Py 语言基础及应用 8_第2页
Py 语言基础及应用 8_第3页
Py 语言基础及应用 8_第4页
Py 语言基础及应用 8_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

Python语言及其应用第6章字典与集合PAGE166PAGE1656.5实训6.5.1实训1【字典】一、实训目的1.掌握字典的声明和使用2.了解字典键的特性3.熟悉字典内置函数与方法的使用4.学会字典的综合应用二、单元练习(一)选择题1.下列哪个函数可以计算字典元素个数____B_A.cmp B.len C.str D.type2.下列哪个函数可以将字典以字符串表示输出__C___A.cmp B.len C.str D.type3.下列哪个函数可以返回输入的变量类型__D___A.cmp B.len C.str D.type 4.若想删除字典,该使用以下哪个方法?(B)A.pop B.del C.clear D.Copy5.下列哪项关于字典的说法正确。(AB)A.键必须唯一,但值则不必。B.列表是方括号[],元组是圆括号(),字典是花括号{}。C.字典中的键是有序的。D.字典的内置函数有dict.clear,type(),str(),len()。(二)填空题1.每个键与值用__冒号__隔开,每对键值对用__逗号___分割,整体放在__花括号___中。2.字典是无序的,在字典中通过__键___来访问成员。3.Python有两种方法可以创建字典,第一种是使用花括号,另一种是使用内建函数__dict___。4.键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如_字符串____,_元组____或_数字____。5.字典的键不能是_____类型。6.描述出以下字典函数或方法的意义:Clear:删除集合中的所有元素Keyindict:键在字典中Keys:返回一个字典所有键Values:返回一个字典所有值Pop:删除并返回任意的集合元素7.假设有列表a=['name','age','sex']和b=['Weng',18,'FeMale'],请使用一个语句将这两个列表的内容转换为字典,并且以列表a中的元素为“键”,以列表b中的元素为“值”,这个语句可以写为___c=dict(zip(a,b))__________________。三、实训任务任务1:【字典基本训练】1.创建一个名为dic1的字典,其中有元素'abc':456程序编写于下方dict1={'abc':456}2.将dic1中的'abc':456改为'abc':123程序编写于下方dict1={'abc':456}

dict1['abc']=132

print(dict1)3.为字典dic1添加新元素,键为:Age,值为:18.程序编写于下方dict1={'abc':456}

dict1['Age']=18

print(dict1)4.删除字典dic1中的元素abc。程序编写于下方dict1={'abc':456}

deldict1['abc']

print(dict1)5.清空字典的所有元素然后将字典删除。程序编写于下方dict1={'abc':456}

deldict1['abc']

dict1.clear()

deldict1任务2:【综合训练1】1.已知字典d={'Adam':95,'Lisa':85,'Bart':59}请打印输出:Adam:95Lisa:85Bart:59程序编写于下方d={'Adam':95,'Lisa':85,'Bart':59}

foriind:

print('{}:{}'.format(i,d[i]))2.请用for循环遍历如下的dict,打印出姓名:分数来。d={'Adam':95,'Lisa':85,'Bart':59}程序编写于下方d={'Adam':95,'Lisa':85,'Bart':59}

foriind:

print('{}:{}'.format(i,d[i]))3.有字典dict1={"a":[1,2]},请将字典中的1输出。程序编写于下方dict1={"a":[1,2]}

print(dict1['a'][0])4.有字典dict2={"a":{"c":"d"}},请将字典中的d输出。程序编写于下方dict2={"a":{"c":"d"}}

print(dict2['a']['c'])任务3:【综合训练2】1.dic={'k1':"v1","k2":"v2","k3":[11,22,33]},请循环输出所有的key,value程序编写于下方dic={'k1':"v1","k2":"v2","k3":[11,22,33]}

foriindic:

print('{}:{}'.format(i,dic[i]))2.请在字典中添加一个键值对,"k4":"v4",输出添加后的字典程序编写于下方dic={'k1':"v1","k2":"v2","k3":[11,22,33]}

dic["k4"]="v4"

print(dic)3.请在修改字典中“k1”对应的值为“alex”,输出修改后的字典程序编写于下方dic={'k1':"v1","k2":"v2","k3":[11,22,33]}

dic["k4"]="v4"

dic["k1"]="alex"

print(dic)4.请在k3对应的值中追加一个元素44,输出修改后的字典程序编写于下方dic={'k1':"v1","k2":"v2","k3":[11,22,33]}

dic["k4"]="v4"

dic["k1"]="alex"

dic["k3"]=[11,22,33,44]

print(dic)5.请在k3对应的值的第1个位置插入个元素18,输出修改后的字典程序编写于下方dic={'k1':"v1","k2":"v2","k3":[11,22,33]}

dic["k4"]="v4"

dic["k1"]="alex"

dic["k3"]=[11,22,33,44]

list=dic['k3']

list.insert(0,18)

dic['k3']=list

print(dic)任务4:【找最大】要求:找到年龄最大的人,并输出。例如:提示,将输入的信息转化成类似字典:{"张三":18,"李四":60,"王五":56,"孙六":7}的结构,然后进行判断大小,然后输出最大的人的信息。程序编写于下方namedic={}

agelist=[]

whileTrue:

dictext=input('请输入姓名,年龄(张三:18)(只输入回车:结束输入):')

ifdictext!='':

listdic=dictext.split(':')

namedic[str(listdic[0])]=int(listdic[1])

else:

break

ifnamedic!={}:

foriinnamedic:

agelist.append(namedic[i])

print(namedic)

print('年龄最大的是:{},{}岁'.format(max(namedic,key=namedic.get),max(agelist)))四、拓展任务任务1:【打印数字的重复次数】要求:用户输入一个数字,打印每一位数字及其重复次数。比如:输入数字888232315,输出结果为:[(‘8’,3),(‘2’,2),(‘3’,2),(‘1’,1),(‘5’,1)]程序编写于下方countlist=[]

alist=[]

text=input('请输入一串数字:')

foriintext:

ifinotinalist:

alist.append(i)

countlist.append((i,text.count(i)))

print(countlist)任务2:【打印数字的重复次数】要求:随机产生10个整数,数字的范围[-1000,1000],升序输出所有不同的数字及其重复的次数。比如:产生的十个随机数字分别为:1,-2,2,3,7,-9,-10,3,-6,7,输出结果为:[(-10,1),(-9,1),(-6,1),(-2,1),(1,1),(2,1),(3,2),(7,2)]程序编写于下方importrandom

countlist=[]

alist=[]

blist=[]

text=''

forwinrange(10):

blist.append(random.randint(-1000,1000))

foriinblist:

ifinotinalist:

alist.append(i)

countlist.append((i,blist.count(i)))

print(countlist)任务3:【打印字母的重复次数】要求:字符表abcdefghijklmnopqrstuvwxyz随机挑选2个字母组成字符串,共挑选10个,降序输出所有不同的字符串及重复的次数比如:产生的十个随机字母组成的字符串分别为:ab,cx,gd,ef,oc,jk,gh,bs,py,uv,输出结果为:[(‘uv’,1),(‘py’,1),(‘oc’,1),(‘jk’,1),(‘gh’,1),(‘gd’,1),(‘ef’,1),(‘cx’,1),(‘bs’,1),(‘ab’,1)]程序编写于下方importrandom

countlist=[]

alist=[]

blist=[]

text='abcdefghijklmnopqrstuvwxyz'

forwinrange(10):

word=text[random.randint(0,25)]+text[random.randint(0,25)]

blist.append(word)

blist.sort(reverse=True)

foriinblist:

ifinotinalist:

alist.append(i)

countlist.append((i,blist.count(i)))

print(countlist)任务4:【拼写英文单词】要求:写一个程序,在程序运行时给用户中文提示,要求用户拼写出英文,根据用户的拼写是否正确,确定进行下一个单词的拼写或重新拼写。程序编写于下方importrandom

worddic={'苹果':'apple','香蕉':'banana','西瓜':'watermelon','橘子':'orange','钢笔':'pen','盒子':'box'}

wordlist=['苹果','香蕉','西瓜','橘子','钢笔','盒子']

randword=''

text='1'

whiletext!="0":

flag=random.randint(0,len(wordlist)-1)

randword=wordlist[flag]

text=input('请拼写单词“{}”的英文(全小写)(输入0结束游戏):'.format(randword))

whileTrue:

iftext=='0':

break

eliftext==worddic[randword]:

print('恭喜你答对了!')

break

else:

text=input('很遗憾答错了,请重新回答:')程序编写于下方6.5.2实训2【集合】一、实训目的1.掌握集合的声明和使用2.掌握集合运算3.熟练使用集合内置函数与方法2.学会集合的综合应用二、单元练习(一)填空题1.在Python中,字典和集合都是用一对_____作为界定符,字典的每个元素有两部分组成,即____和________,其中_____不允许重复。2.已知:x=set('Christoper'),y=set(['k','i','d']),执行下列操作后,请将结果填写到横线处。(1)print(x&y)的结果:(2)print(x|y)的结果:(3)print(x-y)的结果:(4)print(x^y)的结果:三、实训任务任务1:【集合基本训练】1.创建一个名为set1的集合,其中有元素为:’123’,’weng’,100程序编写于下方set1={'123','weng',100}2.为集合set1添加一个新元素,’Christopher’程序编写于下方set1={'123','weng',100}

set1.add('Christopher')

print(set1)3.为集合set1添加多个新元素,’is’、18、[’years’,’old’]程序编写于下方set1={'123','weng',100}

set1.update(['is',18])

set1.update(['years','old'])

print(set1)4.删除集合set1中的元素100程序编写于下方set1={'123','weng',100}

set1.update(['is',18])

set1.update(['years','old'])

set1.remove(100)

print(set1)5.清空集合set1中的所有元素。程序编写于下方set1={'123','weng',100}

set1.update(['is',18])

set1.update(['years','old'])

set1.remove(100)

set1.clear()

print(set1)任务2:【集合综合训练】1.给定一个列表,提取列表中单一元素,即提取出序列中所有不重复的元素。假设列表list1=[1,2,3,4,5,2,3,4]2.现有集合set1=set([1,2,3]),给定一个列表list1=[1,2,3,4,5,2,3,4],遍历list1中的每一个元素,如果它在set中,就将其删除,如果不在set中,就添加进去。程序编写于下方#第一题:

list1=[1,2,3,4,5,2,3,4]

s=set(list1)

list1=list(s)

print(list1)

#第二题:

set1=set([1,2,3])

list1=[1,2,3,

温馨提示

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

最新文档

评论

0/150

提交评论