python_task_06

1.用至少三种方式完成对列表l1的去重操作
l1 = [‘b’,‘c’,‘d’,‘b’,‘c’,‘a’,‘a’]

方法一:
l1 = ['b', 'c', 'd', 'b', 'c', 'a', 'a']
l1 = list(set(l1))
print(l1)  # ['d', 'b', 'c', 'a']
方法二:会保持原来的元素顺序
l1 = ['b', 'c', 'd', 'b', 'c', 'a', 'a']
new_l = []
for i in l1:
	if i not in new_l:
		new_l.append(i)
print(new_l)  # ['b', 'c', 'd', 'a']
方法三:
l1 = ['b', 'c', 'd', 'b', 'c', 'a', 'a']
new_l1 = []
i = 0
while i < len(l1):
	if l1[i] not in new_l1:
		new_l1.append(l1[i])
	i += 1
print(new_l1)  # ['b', 'c', 'd', 'a']

方法四:
l1 = ['b', 'c', 'd', 'b', 'c', 'a', 'a']
l1 = list({}.fromkeys(l1,None))
print(l1)  # ['b', 'c', 'd', 'a']

2.关系运算
有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
pythons = {‘jason’, ‘egon’, ‘kevin’, ‘ricky’, ‘gangdan’, ‘biubiu’}
linuxs = {‘kermit’, ‘tony’, ‘gangdan’}
1.求出即报名python又报名linux课程的学员名字集合

print(pythons&linuxs)

2.求出所有报名的学生名字集合

print(pythons|linuxs)

3.求出只报名python课程的学员名字

print(pyhthons-linuxs)

4.求出没有同时这两门课程的学员名字集合

print(pythons^linuxs)

ps:衍生小知识总结如何找出两个列表中相同元素与不同元素
list1 = [1,2,3]
list2 = [3,4,5]

# list转换为set
res1 = set(list1)
res2 = set(list2)
# 交集:相同元素
print(res1&res2)
# 对称差集:不同元素
print(res1^res2)

3.单位换算
bit、bytes、KB、MB、GB、TB、PB

8bit = 1bytes
1024bytes = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB

4.请列举出你所知道的PEP8规范

#1.子列表缩进四个空格,一个tab键
# 2.赋值等号前后空一格
# 3.每行最大长度79
# 4.各种右括号前不要加空格。
# 5.逗号、冒号、分号前不要加空格。
# 6.函数的左括号前不要加空格。如Func(1)。
# 7. 序列的左括号前不要加空格。如list[2]。
# 8.操作符左右各加一个空格,不要为了对齐增加空格。
# 9.函数默认参数使用的赋值符左右省略空格。
# 10.不要将多句语句写在同一行,尽管使用‘;’允许。
# 11.if/for/while语句中,即使执行语句只有一句,也必须另起一行。
# 注释
# 1.单行注释:在代码后面空两个,然后# 在空一格
# 2.多行注释:使用"""  """  三引号
# 3.当一段代码发生变化时,第一件事就是要修改注释!

5.阐述编码表ASCII、GBK、unicode各自特点及由来

# ASCII 
来源:计算机最早起源于美国,美国人为了能够让计算机识别人类能够读懂的字符,制定的了英文与数字的对应关系,即ASCII表
特点:只记录了英文和数字的对应关系
	用8(bit)来表示一个英文字符

# GBK 
来源:由于美国人制定的ASCII表只能让计算机识别英文,不能识别中文,因而,中国人设计出了一种中文和英文与数字的对于关系,即GBK表
特点:汉字、英文 跟数字的对应
	1bytes来表示英文
    2bytes来表示汉字
    如果出现了生僻字可能还需要用3bytes甚至跟多的bytes
    
# unicode 万国码 
来源:每个国人都有自己国家语言与数字对应的关系,每种编码都不互通,为了解决这个问题,于是就发明万国码,它兼容万国语言,并且跟之前所有国家的编码都有对应关系。
特点:所有的字符都是用2bytes来存储,英文用2bytes,中文也用2bytes
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值