⼩甲鱼python课后习题【26,27,28,29,30】
【学习笔记,仅供学习交流使⽤,知识源于鱼c论坛】
作业26:
测试题:
0、python的字典是否⽀持⼀键多值?
不⽀持,对相同的键再次赋值直接覆盖
>>> dict2 ={1:'one',1:'two',3:'three'}
>>> dict2
{1:'two',3:'three'}
1、在字典中,如果视图为⼀个不存在的键赋值会怎么样?
会⾃动创建该键并添加相应的值进去
>>> dict1 ={1:'one',2:'two',3:'three'}
>>> dict1
{1:'one',2:'two',3:'three'}
>>> dict1[4]=('four')
>>> dict1
{1:'one',2:'two',3:'three',4:'four'}
2、成员操作符in或者not in可以检查⼀个元素是否存在⼀个序列中,当然也可以⽤来检查⼀个键是否存在字典中,那么请问哪种的检查效率更⾼⼀些?为什么
heightened heroism翻译 字典更⾼效⼀些,因为字典的原理是使⽤哈希算法存储,⼀步到位,不需要使⽤其他算法进⾏匹配,因此效率⽐较⾼。
3、python对键和值有没有数据类型的限制?
python对键有要求,要求他们必须是可哈希的对象,不能是可变类型(包括变量,列表,字典本⾝等)
对于值就没有任何限制,可以是Python⾥的任何类型。
4、⽬测下⾯代码。字典1的内容是什么?
dict1.fromkeys((1,2,3),('one','two','three'))
dict1.fromkeys((1,3),'数字')
>>> dict1 ={}
>>> dict1.fromkeys((1,2,3),('one','two','three'))
{1:('one','two','three'),2:('one','two','three'),3:('one','two','three')}
>>> dict1.fromkeys((1,3),'数字')
{1:'数字',3:'数字'}
>>> dict1 #要注意fromkeys()⽅法是返回⼀个新创建的字典。
{}
5、如果你需要将字典dict1={1:’one’,2:’two’,3:’three’}拷贝到dict2,你应该怎么做?
#copy拷贝⽅法
dict2 = py()
#直接赋值
dict2 = dict1
动动⼿:
0、尝试编写⼀个⽤户登录程序(尝试将功能封装成函数)
user_data={‘⼩王’:123,‘⼩李’:254,‘⼩张’:125,‘⼩徐’:785}
def new_user():
prompt='请输⼊⽤户名:'
while1:
name=input(prompt)
if name in user_data:
prompt='此⽤户已经被占⽤,请重新输⼊'
continue
else:
break
password=input("请输⼊密码:")
user_data[name]=password
print("注册成功,赶快登陆吧")
def old_user():
prompt='请输⼊⽤户名:'
while1:
name=input(prompt)
if name not in user_data:
prompt='您输⼊的⽤户名不存在,请输⼊:'
continue
自学java需要什么软件else:
break
password=input("请输⼊密码:")
pwd=(name)
if password==pwd:
print("欢迎进⼊系统!")
else:
print("密码错误")
def showmenu():
prompt='''
新建⽤户:N/n
登录账号:E/e
退出程序:Q/q
请输⼊指令代码:'''
while1:
chosen=False
while not chosen:
choice=input(prompt)
if choice not in'EQNneq':
print('代码指令错误,请重新输⼊')
else:
chosen=True
if choice=='q'or choice=='Q':
break
if choice=='N'or choice=='n':
new_user()
if choice=='e'or choice=='E':
old_user()
showmenu()
作业27:
测试题:
0、请问集合的唯⼀作⽤是什么喃?
集合⼏乎所有的作⽤就是确保⾥边包含的元素的唯⼀性,就像世界上没有两⽚完全相同的树叶⼀样,集合内不可能存在两个相同的元素。
1、如果你希望创建的集合是不变得,应该怎么做?
frozenset()
2、请问如何确定⼀个集合⾥⾯有多少个元素?
len()
3、⽬测以下代码会打印什么内容?
num_set=set([1,2,3,4,5])
num_set[0]
报错,集合是⽆索引的
4、请问set1 = {[1,2]}和set =([1,2])执⾏结果⼀样吗?
不⼀样,set1 = {[1,2]}会报错,因为集合只能添加可哈希类型,⽽set =([1,2])⽣成了⼀个集合。
5、打开你的idle,输⼊set1 ={1,1.0},你会发现什么?
集合是{1.0}
6、请问如何给集合添加和删除元素?
add() 添加 romove()移除
作业28:
测试题:
0、下边只有⼀种⽅式不能打开⽂件,请问是哪⼀种,为什么?
f =open('E:/','w')# A
python基础代码作业f =open('E:\','w')# B
f =open('E://','w')# C
f =open('E:\\','w')# D
B不能打开,因为\t会被当做制表符。
1、打开⼀个⽂件我们使⽤open()函数,通过设置⽂件的打开⽅式, 决定打开的⽂件具有哪些性质,请问默认的打开模式是什么?
默认“rb”,也就是只读⽂本模式。
2、请问>>>open(‘E:\Test.bin’,‘xb’)是以什么样的模式打开⽂件的?
以可写⼊的⼆进制模式打开⽂件Test.bin。
3、尽管Python有所谓的“垃圾回收机制”,但是对于打开了的⽂件,在不需要⽤到的时候我们任然需要使⽤f.close()将⽂件对象“关闭”,这是为什么呢?
因为未使⽤close⽅法时,⽂件对象是保存在RAM(Random Access Memory)随机存储器⾥得,⼀断电就会把修改丢失,使⽤close ⽅法后修改后的⽂件会保存到磁盘⾥。
4、如何将⼀个⽂件对象(f)中的数据存放进列表中?
list(f)⽅法。
5、如何迭代打印出⽂件对象(f)中的每⼀⾏数据?
for each_line in f:
print(each_line)
6、⽂件对象的内置⽅法f.read(size = -1)作⽤是读取对象内容,size参数是可选的,那如果设置size = 10,例如f.read(10),将返回什么内容?
返回从⽂件指针开始的连续10个字符组成的字符串。
短网址
7、如何获得⽂件对象(f)当前⽂件指针的位置?
f.tell()
8、还是视频中的那个演⽰⽂件(),请问为何f.seek(45,0)不会报错,但是f.seek(46)就出错了呢?
因为使⽤f.seek()定位的⽂件指针是按字节为单位进⾏计算的,演⽰⽂件是按GBK进⾏编码的,那样⼀个汉字需要两个字
节,f.seek(45)的位置是字符“⼩”的开始位置,⽽f.seek(46)的位置刚好位于字符“⼩”的中间位置,按照GBK编码的形式⽆法解码。 ⽐如:f.seek(2):012三个字符 f.seek(3):0123四个字符
动动⼿:
0.试尝试将⽂件(OpenMe.mp3)打印到屏幕上。
f =open('D:\\OpenMe.mp3')
for i in f:
print(i,end='')
f.close()
1.编写代码,将上⼀题中的⽂件(OpenMe.mp3)保存为新⽂件()
f =open('D:\\OpenMe.mp3')
f2 =open('D:\\','x')
f2.ad())
f.close()
小程序开发前景怎么样f2.close()
作业29:
动动⼿:
0、编写⼀个程序,接受⽤户输⼊并保存为新⽂档
def write_save(filename):
f=open(filename,'w')
print(':w表⽰退出')
while1:
word=input("请输⼊你想说的话:")
if word!=':w':
f.write('%s\n'%word)
else:
break
f.close()
filename=input('请输⼊⽂件名:')
write_save(filename)
1、编写⼀个程序⽐较⽤户输⼊的两个⽂件,如果不同,显⽰出所有不同处的⾏号与第⼀个不同字符的位置
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论