零基础学python day04 进制和编码
1.python代码的运行方式
- 脚本式
- 交互式
2.进制
计算机中底层所有数据都是以01010的形式存在
2.1进制转换
25
bin(25) 十进制转换为二进制 “0b11001” 字符串形式存在
oct(25) 十进制转换为八进制 “0o27” 字符串形式存在
hex(25) 十进制转换为十六进制 “0x1c” 字符串形式存在
int(“0b11001”,base = 2) 二进制转换为十进制
int(“0o27”,base = 8) 八进制转换为十进制
int(“0b1c”,base = 16) 十六进制转换为十进制
3.计算机中的单位
- b(bit) ,位 几个二进制
- B(byte), 字节 8位是一个字节
- KB(kilobyte) 千字节 1024个字节
- MB(Megabyte) 兆字节 1024KB
- GB(Gigabyte) 千兆字节 1024MB
- TB 万亿字节
- PB/EB/ZB/YB/BB/NB/DB
4.编码
编码:文字和二进制之间的一个对照表
4.1ascii编码
ascii规定用1个字节表示字母与二进制的对应关系
4.2 gb-2312编码
gb 2312编码,由国家信息标准委员会制作(1980年)
gbk编码,对gb2312进行拓展,包含了中日韩等文字(1995年)
4.3 unicode
Unicode也称万国码,为全球每个文字都分配了一个码位(二进制表示)
- Ucs2 用两个字节表示一个文字
- Ucs4 用4个字节表示一个文字
4.4 utf-8编码
utf-8实质上是对unicode的压缩,用尽量少的二进制去与文字进行对应
规则:
Unicode | UTF-8 |
---|---|
0000 - 007F | 0xxxxxxx |
0080 - 07FF | 110xxxxx 10xxxxxx |
0800 - FFFF | 1110xxxx 10xxxxxx 10xxxxxx |
10000 - 10FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx |
“武” -> 6B66 -> 0110 1011 0110 0110
根据模板套数据
1110xxxx 10xxxxxx 10xxxxxx
11100110 10101101 10100110
4.5 python相关的编码
字符串(str)
字节(byte) 用于问及那或网络处理
name = "水饺"
data = name.encode("utf-8")
#打开一个文件
file_object = open("log.txt",mode="wb")
#在文件中写内容
file_object.write(data)
#关闭文件
file_object.close()
运行结果