Day16模块
Day16
当做执行文件时
__name__ = "__main__"
当做模块被导入时
__name__ 等于文件名即模块名
```python
循环导入(模块的名称空间已经建立,但模块内导入语句后的名称未加入到名称空间中,导致另一个模块导入不到,报错)
解决循环的导入的两种方案:
1.名字放在导入前,避免找不到名称
2.导入放在函数内,函数在定义时不会执行,保证了模块内的名称创建完全
!!!!首次导入模块的三件事:1.创建模块的名称空间 2.执行模块内的代码 3.在执行文件中拿到模块中名字
再次导入时,直接调用上一次的结果,不会再创建模块的名称空间
1.包
什么是包:
包就是一个含有__init__.py的文件夹
为何要用包
导入包
1.创建名称空间
2.执行包下的__init__.py
3.
相对导入仅限于包内文件 互相导入
.当前文件夹
..上一级文件夹
2.json&pickle
什么是序列化
将内存中的数据类型转成另外一种格式
序列化:字典>>>序列化>>>其他格式>>存到硬盘
硬盘>>>读取>>>其他格式>>>反序列化>>>字典
为何是序列化
1.持久保存程序的运行状态
2.数据的跨平台交互
json:
字符串
优点:跨平台性强
确定:不能识别所有python数据类型
强调:json格式不能识别单引号
import json
dic = {"k1":True,"k2":10,"k3":"egon"}
dic_json = json.dumps(dic)
dic_json = {"k1":true,"k2":10,"k3":"egon"}#json格式的字符串
type(dic_json) = str
pickle:
优点:能识别所有python类型
缺点:只能被python这门编程语言识别
import pickle
dic = {"k1":True,"k2":10,"k3":"egon"}
dic_pickle = pickle.dumps(dic)
dic_pickle #pickle模式的二进制
type(dic_json) = bytes
如何序列化
3.time模块
1.时间戳
time.time()
2.格式化字符串
time.strftime("%Y-%m-%d %H:%M:%s %p")
3.结构化的时间对象
time.localtime()
time.gmtime()
差8小时
time.localtime.tm_hour
time.localtime.tm_wday
time.localtime.tm_yday
datetime模块
time模块获取结构化时间麻烦:datetime.datetime.now()
时间戳与格式化时间无法 :datetime.datetime.fromtimestamp()
datetime.datetime.now() + datetime.timedelta()
random
随机
import random
random.random( ) 0到1之间的任意小数
random.randint(1,3) 1到3之间的整数
random.randrange(1,3) 顾头不顾尾,[1,2]
random.choice([1,"a",[1,2,3]])指定范围
random.sample([1,2,3,4,5],3)从指定范围取出一定数量
random.uniform(1,3) (1,3)之间的小数,可以指定范围
item = [1,3,5,7,9]
random.shuffle(item) 洗牌
def make_code(n):
s1 = str(random.randint(0,9))
s2 = chr(random.randint(65,90))
s3 = chr(random.randint(97,122))
res = s1+s2+s3
for i in range(n-3):
s = random.choice([str(random.randint(0,9)),chr(random.randint(65,90)),chr(random.randint(97,122))])
res += s
print(res)
return res
make_code(6)
3.re&正则表达式
Day16模块的更多相关文章
- python学习day16 模块(汇总)
模块(总) 对于range py2,与py3的区别: py2:range() 在内存中立即把所有的值都创建,xrange() 不会再内存中立即创建,而是在循环时边环边创建. py3:range() 不 ...
- DAY16 模块和包的导入
一.包 1.包的定义 包:就是一系列模块的结合体 2.重点 1.包中一定要有一个专门来管理包中所有模块的文件 2.包名:存放一系列模块的文件夹名字 3.包名(包对象)存放的是管理模块的那个文件的地址, ...
- day16 模块导入及环境变量
""" 今日内容: 1.模块 2.模块的导入 3.环境变量sys.path 4.模块间的相互调用 """ """ ...
- day16模块,导入模板完成的三件事,起别名,模块的分类,模块的加载顺序,环境变量,from...import语法导入,from...import *,链式导入,循环导入
复习 ''' 1.生成器中的send方法 -- 给当前停止的yield发生信息 -- 内部调用__next__()取到下一个yield的返回值 2.递归:函数的(直接,间接)自调用 -- 回溯 与 递 ...
- oldboy edu python full stack s22 day16 模块 random time datetime os sys hashlib collections
今日内容笔记和代码: https://github.com/libo-sober/LearnPython/tree/master/day13 昨日内容回顾 自定义模块 模块的两种执行方式 __name ...
- day16,模块 , 用户管理系统 , 购物车程序 , 分页显示.
#!/usr/bin/env python# -*- coding:utf-8 -*- # 1.列举你常见的内置函数."""强制转换:int() / str() / li ...
- Python语言系列-05-模块和包
自定义模块 #!/usr/bin/env python3 # author:Alnk(李成果) # 为什么要有模块?(内置函数不够用) # 和操作系统打交道 # 和python解释器打交道 # 和时间 ...
- day16 十六、包、循环导入、导入模块
一.包的概念 包:一系列模块的集合体.包通过文件夹管理一系列功能相近的模块 重点:包中一定有一个专门用来管理包中所有模块的文件 包名:存放一系列模块的文件夹的名字 包名(对象)存放的是管理模块的那个文 ...
- day16——自定义模块、time、datetime、random
day16 自定义模块 自定义一个模块 import :导入(拿工具箱) # import test # test.func() 导入发生的事情 在当前的名称空间中开辟一个新的空间 将模块中所有的代码 ...
随机推荐
- 给ACM newer的编程技巧
一.复杂度 1.1什么是复杂度? 在设计满足问题要求的算法时,复杂度的估算是非常重要的.我们不可能把每个想到的算法实现一遍看看是否足够快.应当通过估计算法的复杂度来判断所想的算法是否足够高效. 1.2 ...
- datagridview连接数据库的简单实现
对于需要从数据库获取数据的列,在DataPropertyName填写对应的列名字. 在Load函数中添加如下代码,先关闭自动生成列选项,然后得到一个查询的datatable,并将其绑定到datasou ...
- python_22(Form-CRM)
第1章 CRM 1.1 建项目 1.2 settings1.3 规范url 1.4 公共的后台模板1.5 创建部门表 1.6 建库移库 1.7 母版继承 1.7.1 导入static 1.7.2 导入 ...
- python_17(sql)
第1章 MySQL安装 1.1 windows版下载地址 1.2 添加环境变量 1.3 初始化 1.4 启动mysql服务 1.5 链接mysql 1.6 制作mysql的windows服务 1.7 ...
- Unity Shader入门精要学习笔记 - 第2章 渲染流水线
来源作者:candycat http://blog.csdn.net/candycat1992/article/ 2.1 综述 渲染流水线的最终目的在于生成或者说是渲染一张二维纹理,即我们在电脑屏 ...
- 对shell的简单认识
shell是一个命令解释器: shell分为交互式shell和非交互式shell: 交互式shell就是命令行一问一答:非交互式shell是像shell文本那样,一次解析文本, 并未在命令行给我们作出 ...
- Java基础之入门介绍
基础知识 1.JVM.JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. java ...
- 自定义消息中如果需要定义WPARAM和LPARAM,该怎么使用和分配?
写Windows程序不可避免要使用自定义的消息,也就是从WM_USER开始定义的消息.在定义一个消息后,往往我们还要定义针对该消息的WPARAM甚至是LPARAM.WPARAM和LPARAM是什么,可 ...
- SVN的两种存储方式FSFS和BDB比较【转】
版本库数据存储 在Subversion1.2中,版本库中存储数据有两种方式.一种是在Berkeley DB数据库中存储数据:另一种是使用普通的文件,使用自定义格式.因为Subversion的开发者称版 ...
- jmeter并发定时器
jmeter并发定时器