1.day 05 内容回顾
dict:dic = {'name':'alex'}
增:dic['age']=21#存在就覆盖
dic.setdefault(),没有就增加
删除:
pop()按照key删除,有返回值
clear 清空
del dic['name']按健删除,没有返回值
popitem()随机删除
改 update
查
dic.keys()打印所有健
dic.values()打印所有值
dic,items()打印所有键值对
for k,v in dic.items()
print(k,v)
dic.get(key,None)
2.作业讲解
'''
3、元素分类
有如下值li= [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表}
'''
# li= [11,22,33,44,55,66,77,88,99,90]
# dic={}
# l1=[]
# l2=[]
# for i in li:
# if i==66:
# continue
# if i>66:
# l1.append(i)
# else:
# l2.append(i)
# dic.setdefault("k1",l1)
# dic.setdefault("k2",l2)
# print(dic)
'''
4、输出商品列表,用户输入序号,显示用户选中的商品
商品 li = ["手机", "电脑", '鼠标垫', '游艇']
要求:1:页面显示 序号 + 商品名称,如:
1 手机
2 电脑
…
2: 用户输入选择的商品序号,然后打印商品名称
3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
4:用户输入Q或者q,退出程序。
'''
while 1:
li = ["手机", "电脑", '鼠标垫', '游艇']
for i in li :
print('{}\t\t{}'.format(li.index(i)+1,i))
num_of_choice = input('请输入选择的商品序号:')
if num_of_choice.isdigit():
num_of_choice = int(num_of_choice)
if num_of_choice>0 and num_of_choice<=len(i):
print(li[num_of_choice-1])
else:print('请输入有效数字')
elif num_of_choice.upper()=='Q':break
else:print('请输入数字')
3.小知识点总结
'''
pythoon2 python3的区别
'''
#python2
#print() print'abc'
#range() xrangge()生成器
#raw_input()
#python3
#ptint(abc)
#range()
#input()
# =(赋值) ==(比较值是否相等) is 比较,比较就是内存地址
# li1 = [1,2,3]
# li2=li1
# print(id(li1),id(li2))
# id()#测出内存地址
#数字 字符串 小数据池
#数字的范围 -5--256
#字符串:1,不能有特殊字符
# 2,s*20还是同一个地址,s*21以后都是两个地址
# i1 = 6
# i2 = 6
# print(id(i1),id(i2))
#剩下的 list dict tuple set
#l1 = [1,]
#l2 = [1,]
#print(l1 is l2)
# s = 'alex'
# s1 = b'alex'
# print(s,type(s))
# print(s1,type(s1))
# s = '中国'
# print(s,type(s))
# s1 = b'中国'
# print(s1,type(s1))
# s1 = 'alex'
# # encode 编码,如何将str --> bytes, ()
# # s11 = s1.encode('utf-8')
# s11 = s1.encode('gbk')
# print(s11)
s2 = '中国'
s22 = s2.encode('utf-8')
s22 = s2.encode('gbk')
print(s22)
4.编码(py3)
ascii
A : 00000010 8位 一个字节
unicode
A: 00000000 000000001 00000010 00000100 32位四个字节
中:00000000 000000001 00000010 00000110 32位四个字节
gdk A:00000110 8位一个字节
中:000000001 00000010 00000110 24位三个字节
1.各个编码之间的二进制,是不能互相识别的,会产生乱码
2.文件的存储,传输,不能是unicode存储的
py3:
str 在内存中是用unicode编码
bytes类型
对于英文:
str: 表现形式: s = 'alex'
编码方式:010101010 unicode
bytes:表现形式:s = b'alex'
编码方式:000101010 utf-8 gbk
对于中文:
str: 表现形式: s = 'alex'
编码方式:010101010 unicode
bytes:表现形式:s = b'x\e91\e91\e01\e21\e31\e32'
编码方式:000101010 utf-8 gbk
# s = 'alex'
# s1 = b'alex'
# print(s,type(s))
# print(s1,type(s1))
# s = '中国'
# print(s,type(s))
# s1 = b'中国'
# print(s1,type(s1))
# s1 = 'alex'
# # encode 编码,如何将str --> bytes, ()
# # s11 = s1.encode('utf-8')
# s11 = s1.encode('gbk')
# print(s11)
s2 = '中国'
s22 = s2.encode('utf-8')
s22 = s2.encode('gbk')
print(s22)