01 昨日内容回顾
字典:
增:
setdefault() 有责不变,无责添加
dic['key'] = value
删:
pop 按照key
pop('key')
pop('key',None)
popitem() 删除最后一个
clear 清空
del dic['key']
改:
dic['key'] = 'v'
update()
dic1.update(dic) : dic的所有的键值对覆盖并添加到dic1中,dic不变
dic1.update(name='alex')
查:
dic['key']
dic.get('key')
dic.get('key','设置返回值')
for i in dic:
print(i)
dic.keys() dic.values() dic.items() 类似于列表的容器,没有索引但是可以for循环去遍历。
a, b = [11, 22]
a, b = 11, 22
a, b = b, a
创建字典的三种方式:
dic = {'name': 'alex'}
dic = dict()
dic = dict(name='alex', age='12')
dic = dict({'name': 'alex', 'age': 12})
dict.fromkeys('abc','alex')
创建字典的三种方式:
dic = {'name': 'alex'}
dic = dict()
dic = dict(name="alex", age = "12")
dic = dict()
print(type())
02 作业讲解
03 id is ==
04 小数据池(了解)
041 数据类型的补充(总结) ***
int
str
bool
list
tuple
dict
set
05 编码
ascii:早期的密码本 英文字母,数字,特殊字符。
00000001 a
00000010 b
8位(bit) == 1 byte
在ascii码中 8位一个字节表示一个字符。
'hello'
01101000 01100101 01100111 01100111 01100110
unicode :万国码,将全世界所有的文字全都包含进去
起初:
a : 0000 0000 0001 0010
中: 0000 0000 1001 0010
升级:
一个字符 用32位 4个字节表示
a : 0000 0000 0001 0010 0000 0000 0001 0010
中: 0000 0000 1001 0010 0000 0000 1001 0010
浪费资源。
utf-8:最少用8位表示一个字符
a : 0000 0010 8位表示一个字符
欧洲: 0000 0010 0010 0000 16位 两个字节表示一个字符
中: 0000 0010 0000 0010 0000 0010 24位 3个字节表示一个字符
gbk:国标 只包含英文与自己国家的文字
a: 0000 0010 8位一个字节表示一个字符
中:0000 0010 0000 0010 16位 两个字节表示一个字符
# 以上四个编码本:
1,不同的编码之间能否互相识别(报错或者出现乱码)。 不能!!
2, 规定:文字通过网络传输,或者硬盘存储不能使用Unicode编码方式。
大前提:
python3x环境:
唯独str类型:他在内部编码方式是unicode
所以 python3x中的字符串不能用于直接的网络传输 文件的存储 '中午请我去吃饭'
补充一个数据类型:bytes类型 与str类型是海尔兄弟。
为啥要有bytes:
bytes内部编码方式非unicode
为啥还要有str? bytes直接就解决了所有问题呀?
bytes 中文是16进制表示,看不懂。
英文:
str:
表现形式:'alex'
内部编码:unicode
bytes:
表现形式:b'alex'
内部编码:非unicode
中文:
str:
表现形式:'屌丝'
内部编码:unicode
bytes:
表现形式:b'\xe5\xb1\x8c\xe4\xb8\x9d''
内部编码:非unicode
bytes:当你需要网络传输数据,文件存储数据时要考虑到bytes。
str ---> bytes(gbk utf-8)
unicode ---> gbk utf-8
06 深浅copy
07 集合(了解)