python09
1.python代码的运行方式
- 
交互式:直接在终端中运行解释器,而不是输入要执行的文件名,对于每个输入语句即时运行的结果,适合语法练习,缺点代码不能保存。 
- 
脚本式:批量执行一组语句并运行结果,编程的主要方式 
2.进制
计算机底层所有的数据都是以010101的形式存在(图片,文本,视频等)
- 
二进制 1 1 10 2 11 3
2.1进制转换
v1 = bin(25) # 十进制转换为二进制
print(v1)# "0b11001"
v2 = oct(23) # 十进制转换为八进制
print(v2)# "0o27"
v3 = hex(28) # 十进制转换为十六进制
print(v3)# "0x1c"
i1 = int("0b11001",base=2)
print(i1)# 25
i2 = int("0o27",base=8)
print(i2)# 23
i3 = int("0x1c",base=16)
print(i3)# 28
3.计算机的单位
由于计算机中本质上所有东西是以二进制存储和操作的,为了方便对于二进制值大小的表示,所以就搞了一些单位。
- 
b(bit) , 位 1,1位 10,2位 111,3位 1001,4位
- 
B(byte) , 字节 8位是一个字节。 10111011,1个字节
- 
KB(kilobyte) , 千字节 1024个字节就是1个千字节 1KB=1024B=1024*8b
- 
M(Megabyte) , 兆 1024KB = 1M 1M = 1024KB= 1024*1024B=1024*1024*8b
- 
G(Gigabyte) ,千兆 1024M = 1G 1G = 1024M = 1024*1024KB= 1024*1024*1024B=1024*1024*1024*8b
- 
T(Terabyte) , 万亿字节 1024G = 1T
- 
...其他更大的单位PB/EB/ZB/YB/BB/DB不再赘述。 
3.1ascii编码
ascii规定使用一个字节来表示字母与二进制的对应关系
4.2 gb-2312编码
gb-2312编码,由国家信息标准委员会制作(1980年)。
gbk编码,对gb2312进行拓展,包含了中日韩等文字(1995年)。
在与二进制做对应关系时,由如下逻辑
- 单字节表示,用一个字节表示对应关系。2**8=256
- 双字节表示,用两个字节表示对应关系。2**16=65536
4.3 unicode
unicode也被称为万国码,为全国每个文字都分配了一个码位(二进制表示)
- 
Ucs2 用固定的两个字节去表示一个文字 2**16=65535
- 
Ucs4 用固定的四个字节去表示一个文字 2**32=4294967296文字 十六进制 二进制 乔 4E54 100111001010100 乔 4E54 01001110 01010100 乔 4E54 00000000 00000000 01001110 01010100unicode的应用:在文件存储和网路传输时,不会直接使用unicode,而在内存中会使用unicode 
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   ->   110 101101 100110
-根据模板套入数据
 1110XXXX 10XXXXXX 10XXXXXX
 1110XXXX 10XXXXXX 10100110
 1110XXXX 10101101 10100110
 11100110 10101101 10100110
4.5python相关的编码
字符串(str)       "我叫张云嘉"       unicode处理
字节(byte)        b"hxhuwxxhwxh"   utf-8 or gbk编码
v1 = "武"
v2 = "武".encode("utf-8")
print(v2)  #b'\xe6\xad\xa6'        utf-8 一个中文三个字节
v3 = "武".encode("gbk")            gbk    一个中文两个字节
print(v3)  #b'\xce\xe4'
name = v3.decode("utf-8")
将一个字符串写进一个文件中
name = "张云嘉"
data = name.encode("utf-8")
#打开一个文件
file_object = open("log.txt",mode="wb")
#在文件中写内容
file_object.write(data)
#关闭文件
file_object.close()
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号