Day 3: 作业

基础

'''
1.简述可变类型与不可变类型的本质,并列举Python中都有哪些可变与不可变类型
'''
可变类型和不可变类型存储的都是硬盘中的空间地址,但是可变类型由于有开辟的堆区空间作为其大本营,其中所存放的地址改变也没有关系,但是不可变类型直接与空间内部的值有直接连接,值变化,不可变类型的地址也会发生变化。

可变类型:list,dic,set
不可变类型:int,str,bool,tuple,float,None

'''
2.有好友列表[('Owen', '上海'), ('Zero', '上海'), ('Nick', '安徽'), ('Jason', '安徽'), ('Jerry', '江苏')],计算每个地区好友的个数,如上列好友列表的结果:{'上海': 2, '安徽': 2, '江苏': 1}
'''
friends = [('Owen', '上海'), ('Zero', '上海'), ('Nick', '安徽'),('Jason', '安徽'), ('Jerry', '江苏')]
area_number = {}
for name, area in f:
area_number.setdefault(area,0)
area_number[area] +=1
print(area_number)

'''
3.老男孩三门课程的报名名单:python={'p', Owen'},linux={'l', 'Owen'},online={'o', 'Owen'}
1)求三门课程都报了的名单
2)只报了一门课程的名单
3)只报了online课程的名单
4)所有报名的名单
'''
python = {'p', 'Owen'}
linux={'l', 'Owen'}
online={'o', 'Owen'}
res1 = python & linux & online
res2 = python ^ linux ^ online
res3 = online - (linux | python)
res3 = online - linux - python
res4 = python | linux | online
print(res1,res2,res3,res4)

'''
4.简述你知道的编码表,并简述在这些编码表中 英文和汉字 各占几个字节
'''
ASCII/DBSC : 英文 => 1个字节 dbcs中文 => 2个
utf-8 : 英文 => 1个字节 中文 => 3个
Unicode:英文 => 2个字节 中文 => 2个
GBK/GB2312:英文 => 1个字节 中文 => 2个

'''
5.有一个 gbk作业文件.txt (采用gbk编码的文件,见群),完成对该文件的复制 得到 gbk作业文件_复制版.txt
'''
with open(r'C:\Tiffany\python\exercise\me\3\gbk作业文件.txt','r',encoding='GBK') as rf:
with open(r'C:\Tiffany\python\exercise\me\3\gbk作业文件_copy.txt','w',encoding='GBK') as wf:
for line in rf:
wf.write(line)

高级

'''
1.老男孩三门课程的报名名单:python={'p', Owen', 'pl', 'po'},linux={'l', 'Owen', 'pl', 'lo'},online={'o', 'Owen', 'po', 'lo'},求只报了两门课程的总名单
'''
python = {'p', 'Owen', 'pl', 'po'}
linux  = {'l', 'Owen', 'pl', 'lo'}
online = {'o', 'Owen', 'po', 'lo'}
res = (python | linux | online) - (python ^ linux ^ online) - (python & linux & online)
print(res)

'''
2.尝试验证在Unicode编码下,英文和汉字都是占2个字节(提示:unicode-escape)
'''
print('好'.encode('unicode-escape'))  # b'\\u597d'
print(b'\\u0041'.decode('unicode-escape'))  # A

'''
3.有一个 gbk作业文件.txt (采用gbk编码的文件,见群),采用 rb 与 w 两种模式完成复制得到 utf8作业文件.txt (采用utf-8编码的文件)
'''
with open('gbk作业文件.txt','rb') as rf:
    with open('utf8作业文件.txt', 'w', encoding='gbk') as wf:
        for line in rf:
            line = line.decode('gbk')
            wf.write(line)

声明:该文章系转载,转载该文章的目的在于更广泛的传递信息,并不代表本网站赞同其观点,文章内容仅供参考。

本站是一个个人学习和交流平台,网站上部分文章为网站管理员和网友从相关媒体转载而来,并不用于任何商业目的,内容为作者个人观点, 并不代表本网站赞同其观点和对其真实性负责。

我们已经尽可能的对作者和来源进行了通告,但是可能由于能力有限或疏忽,导致作者和来源有误,亦可能您并不期望您的作品在我们的网站上发布。我们为这些问题向您致歉,如果您在我站上发现此类问题,请及时联系我们,我们将根据您的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。