找什么样的公司帮助做网站,百度小程序代理,公司网站建设方案书例文,传统企业建设网站的内容一、引入模块的方式: 1. 认识模块 模块可以认为是一个py文件. 模块实际上是我们的py文件运行后的名称空间 导入模块: 1. 判断sys.modules中是否已经导入过该模块 2. 开辟一个内存 3. 在这个内存中执行该py文件 4. 给这个内存起个名字#xff0c; 一般用的是py文件的名字。返回… 一、引入模块的方式: 1. 认识模块 模块可以认为是一个py文件. 模块实际上是我们的py文件运行后的名称空间 导入模块: 1. 判断sys.modules中是否已经导入过该模块 2. 开辟一个内存 3. 在这个内存中执行该py文件 4. 给这个内存起个名字 一般用的是py文件的名字。返回给导入方 如果你的py文件是启动文件 名字是__main__ 程序的入口一般是: if __name__ __main__ pass 1. import 模块 import 模块名 模块名.属性/方法/类 每个模块都有自己的独立的名称空间每个都有一个global 互相并不影响 模块.属性 值. # 不要随意更改模块的值 2. from xxx import 模块 from 模块 import 函数/变量 当作自己的变量或者函数来使用 from xxx import * 导入所有 导入的内容都可以起别名 as 二、collections模块 collections模块主要封装了一些关于集合类的相关操作 Counter——counter是一个计数器. 主要⽤用来计数deque 双向队列需了解栈和队列 栈: FILO. 先进后出 - 砌墙的砖头, 老师傅做馒头 队列: FIFO. 先进先出 - 买火⻋车票排队, 所有排队的场景 队列: python提供了queue模块. 使用起来非常⽅便 注意. 如果队列里没有元素了. 再也就拿不出来元素了. 此时程序会阻塞. 双向队列 collections中的可以从左侧添加也可从右侧添加删除同理 3.namedtuple 命名元组 给元组内的元素进行命名 from collections import namedtuple # ⾃⼰定义了一个元组, 如果灵性够好, 这其实就是创建了了⼀个类 nt namedtuple(point, [x, y]) p nt(1, 2) print(p) print(p.x) print(p.y) 4.orderdict和defaultdict orderdict 顾名思义. 字典的key默认是无序的. 而OrderedDict是有序的 defaultdict: 可以给字典设置默认值. 当key不存在时. 直接获取默认值: from collections import defaultdict dd defaultdict(list) # 默认值list print(dd[娃哈哈]) # [] 当key不存在的时候. 会自动执⾏构造方法中传递的内容. 三、time模块 时间模块 1. 时间戳(timestamp). 时间戳使⽤的是从1970年01月01日 00点00分00秒到现在一共经过了了多少秒... 使⽤float来表示 2. 格式化时间(strftime). 这个时间可以根据我们的需要对时间进⾏任意的格式化. 1. 获取系统时间 time.time() 时间戳 2. 格式化时间 strftime() 时间格式: %Y-%m-%d %H:%M:%S %Y-%m-%d 3. 结构化时间 time.gmtime() time.localtime() strptime() 把格式化时间转化成结构化时间 mktime() 把结构化时间转化成时间戳 s time.strftime(%Y-%m-%d %H:%M:%S) 格式化 print(s) print(time.localtime()) #结构化时间 结果: time.struct_time(tm_year2017, tm_mon05, tm_mday8, tm_hour10, tm_min24, tm_sec42, tm_wday0, tm_yday126, tm_isdst0) 所有的转化都要通过结构化时间来转化. t time.localtime(1888888888) # 结构化时间 s time.strftime(%Y-%m-%d %H:%M:%S, t) # 格式化这个时间 print(s) s 2020-10-01 12:18:12 t time.strptime(s, %Y-%m-%d %H:%M:%S) # 转化成结构时间 print(time.mktime(t)) # 转换成时间戳 四、random模块 -随机 1 import random
2 print(random.random()) # 0-1⼩小数
3 print(random.uniform(3, 10)) # 3-10⼩小数
4 print(random.randint(1, 10)) # 1-10整数
5 [1, 10] print(random.randrange(1, 10, 2)) # 1-10奇数
6 [1,10) print(random.choice([1, 周杰伦, [盖伦, 胡辣汤]])) # 1或者23或者[4,5])
7 print(random.sample([1, 23, [4, 5]], 2)) # 列列表元素任意2个组合
8 lst [1, 2, 3, 4, 5, 6, 7, 8] random.shuffle(lst) # 随机打乱顺序
9 print(lst 五、os、sys os和sys os.sep 文件路径分隔符 sys.path python查找模块的路径 六、序列化 1. pickle 把一个对象转化成bytes写入到文件 pickle.dumps() 把对象转换成bytes pickle.loads() 把bytes转化成对象 pickle.dump() 把对象转换成bytes. 写入到文件 pickle.load() 把文件中的bytes读取. 转化成对象 那真的要写入或者读取多个内容怎么办? 很简单. 装list里. 然后读取和写入都⽤list 创建一个Car类 拥有名字年龄属性 lst [Cat(jerry, 19), Cat(tommy, 20), Cat(alpha, 21)] f open(cat, modewb) pickle.dump(lst, f) f open(cat, moderb) ll pickle.load(f) for el in ll: el.catchMouse() 记住⼀点, pickle序列化的内容是二进制的内容(bytes) 不是给⼈看的给机器看的。 2. shelve 小型数据库, redis, mongodb, dict 当成字典来用 writebackTrue 用来执行修改操作删除或修改都用它 不用不改变 3. json 以前用xml 先在用json json.dumps() 把字典转换成json字符串 json.loads() 把json字符串转化成字典 json.dump() 把字典转换成json字符串. 写入到文件 json.load() 把文件中的json字符串读取. 转化成字典 default func() 把对象转化成字典. 需要自己写函数转换过程 object_hook func() 把字典转化成对象. 需要自己写函数转换过程 ensure_ascii False 可以处理中文 注意. 我们可以向同一个文件中写⼊多个json串. 但是读不⾏。 在读取的时候是⽆法正常读取的. 那如何解决呢? 两套方案. 方案一. 把所有的内容准备好统一 进⾏行写入和读取. 但这样处理, 如果数据量小还好. 数据量大的话, 就不够友好了. 方案二. 不用 dump. 改用dumps和loads. 对每⼀⾏分别进⾏处理. 1 import json 2 lst [{a: 1}, {b: 2}, {c: 3}] 3 # 写⼊4 f open(test.json, modew, encodingutf-8)5 for el in lst: 6 s json.dumps(el, ensure_asciiTrue) \n 7 f.write(s)8 f.close() 9
10 # 读取
11 f open(test.json, moder, encodingutf-8)
12 for line in f:
13 dic json.loads(line.strip())
14 print(dic)
15 f.close() 4.configparser 处理windows配置文件的 dict 适用于配置文件的格式与windows ini文件类似 可以包含一个或多个节(section)每个节 可以有多个参数(键值).转载于:https://www.cnblogs.com/honghong7725/p/9974914.html