Python入门学习笔记——13.内置模块1

###################################################
# 1.序列化-pickle

import pickle

'''
什么是序列化?为什么需要序列化?
1。序列化是指可以把python中的数据,以文本或二进制的方式进行转换,并且还能反序列化为原来的数据
2。一般来说数据在程序与网络中进行传输和存储时,需要以更加方便的形式进行操作,因此需要对数据进行序列化

pickle模块提供的函数
    dumps() 序列化,返回一个序列化后的二进制数据 可以把一个python的任意对象序列化成为一个二进制
        pickle.dumps(var)
    loads() 反序列化,返回一个反序列化后的python对象  可以把一个序列化后的二进制数据反序列化为python的对象
        pickle.dumps(var)

    dump() 序列化,把一个数据对象进行序列化并写入到文件中
        参数1,需要序列化的数据对象
        参数2,写入的文件对象
        pickle.dump(var,fp)
    load() 发序列化,在一个文件中读取序列化的数据,并且完成一个反序列化
        参数1,读取的文件对象
        pickle.load(fp)

'''

# 1。基本的序列化与反序列化操作
vars = 'i love you'  # b'\x80\x03X\n\x00\x00\x00i love youq\x00.' 
vars = [1, 2, 3, 4]  # b'\x80\x03]q\x00(K\x01K\x02K\x03K\x04e.' 
vars = {'name': '张三', 'age': 20,
        'sex': 'm'}  # b'\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x06\x00\x00\x00\xe5\xbc\xa0\xe4\xb8\x89q\x02X\x03\x00\x00\x00ageq\x03K\x14X\x03\x00\x00\x00sexq\x04X\x01\x00\x00\x00mq\x05u.' 

# 使用 pickle.dumps方法进行序列化成为一个二进制的数据
res = pickle.dumps(vars)

# 使用 loads方法完成一个反序列化
res = pickle.loads(res)  # {'name': '张三', 'age': 20, 'sex': 'm'} 

# print(res,type(res))


# 如何把一个python数据进行序列化后写入文件?并且再次读取出来?
# 2。 使用 dumps loads 方法完成
# 定义数据
# vars = {'name':'张三','age':20,'sex':'m'}
# # 进行序列化
# res = pickle.dumps(vars)
# # 写入文件
# with open('./data.txt','wb') as fp:
#     fp.write(res)

# 如何把一个反序列的二进制文件读取处理,并完成反序列化
# 打开文件进行读取
# with open('./data.txt','rb') as fp:
#     res = fp.read()
# # 进行反序列化
# vardict = pickle.loads(res)
# print(vardict)

# 使用 pickle模块给提供的方法完成 load,dump
# 写
# vars = {'name':'张三','age':20,'sex':'m'}
# with open('./data2.txt','wb') as fp:
#     # 在此处调用pickle模块的方法
#     pickle.dump(vars,fp)

# 读
# with open('./data2.txt','rb') as fp:
#     # 在此处调用pickle模块的方法
#     newdict = pickle.load(fp)
# print(newdict)


###################################################
# 2.序列化 json
'''
什么是json?
JSON (JavaScript Object Notation)
JSON 是一个受 JavaScript 的对象字面量语法启发的轻量级数据交换格式。
JSON 在js语言中是一个对象的表示方法,和Python中的字典的定义规则和语法都很像
JSON 在互联网中又是一种通用的数据交换,数据传输,数据定义的一种数据格式

python中提供的json模块,可以把一些符合转换的python数据对象,转为json格式的数据
    json.dumps()
    json.loads()

    json.dump()
    json.load()

'''

import json
# 以下语法格式定义的是一个 字典 数据类型

vardict = {'name':'admin','age':20,'sex':'男'}
vardict = [1,2,3]
vardict = [{'name':'admin','age':20,'sex':'男'},{'name':'aa','age':21,'sex':'m'}]

vardict = 'abcdef'  # 只是转为了字符串而已,
vardict = 521       # 只是转为了数字而且

# print(vardict,type(vardict))

# 使用 json模块的 dumps方法进行 json格式的转换
res = json.dumps(vardict)
# print(res,type(res))

# 使用 loads方法进行反转换
res = json.loads(res)
# print(res,type(res))


# dump  load
# 写
vardict = [{'name':'admin','age':20,'sex':'男'},{'name':'aa','age':21,'sex':'m'}]
# with open('./data.json','w') as fp:
#     json.dump(vardict,fp)

# 读
with open('./data.json','r') as fp:
    new = json.load(fp)
print(new)



###################################################
# 数学模块 Math

import math
# math的相关函数。一部分
# math.ceil()  向上取整,内置函数 round() 四舍五入
res = math.ceil(2.55)

# math.floor() 向下取整,
res = math.floor(2.55)

# math.pow() 计算数值的n次方,结果是浮点
res = math.pow(2,3)

# math.sqrt() 开平方运算,结果是浮点
res = math.sqrt(12)

# math.fabs() 计算绝对值,结果是浮点
res = math.fabs(-3.14)

# math.modf() 把一个数值拆分成小数和整数组成的元组
res = math.modf(3)  #(0.0, 3.0)

# math.copysign(x,y)  把第二个参数的正负符合拷贝给第一个参数,结果为浮点数
res = math.copysign(-3,99)

# math.fsum() 将一个容器类型数据中的元素进行一个求和运算,结果为浮点数
# res = math.fsum('123')  # X TypeError: must be real number, not str
# res = math.fsum({1,2,3}) # 注意:容器中的元素必须是可以运算的number类型

# math.factorial(x)  以一个整数返回 x 的阶乘
res = math.factorial(10)  #

# 常量
# 数学常数 π = 3.141592...,精确到可用精度。
res = math.pi
# print(res)

print('hello 你瞅啥?')



你可能感兴趣的:(Python入门学习笔记)