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模块的更多相关文章

  1. python学习day16 模块(汇总)

    模块(总) 对于range py2,与py3的区别: py2:range() 在内存中立即把所有的值都创建,xrange() 不会再内存中立即创建,而是在循环时边环边创建. py3:range() 不 ...

  2. DAY16 模块和包的导入

    一.包 1.包的定义 包:就是一系列模块的结合体 2.重点 1.包中一定要有一个专门来管理包中所有模块的文件 2.包名:存放一系列模块的文件夹名字 3.包名(包对象)存放的是管理模块的那个文件的地址, ...

  3. day16 模块导入及环境变量

    """ 今日内容: 1.模块 2.模块的导入 3.环境变量sys.path 4.模块间的相互调用 """ """ ...

  4. day16模块,导入模板完成的三件事,起别名,模块的分类,模块的加载顺序,环境变量,from...import语法导入,from...import *,链式导入,循环导入

    复习 ''' 1.生成器中的send方法 -- 给当前停止的yield发生信息 -- 内部调用__next__()取到下一个yield的返回值 2.递归:函数的(直接,间接)自调用 -- 回溯 与 递 ...

  5. oldboy edu python full stack s22 day16 模块 random time datetime os sys hashlib collections

    今日内容笔记和代码: https://github.com/libo-sober/LearnPython/tree/master/day13 昨日内容回顾 自定义模块 模块的两种执行方式 __name ...

  6. day16,模块 , 用户管理系统 , 购物车程序 , 分页显示.

    #!/usr/bin/env python# -*- coding:utf-8 -*- # 1.列举你常见的内置函数."""强制转换:int() / str() / li ...

  7. Python语言系列-05-模块和包

    自定义模块 #!/usr/bin/env python3 # author:Alnk(李成果) # 为什么要有模块?(内置函数不够用) # 和操作系统打交道 # 和python解释器打交道 # 和时间 ...

  8. day16 十六、包、循环导入、导入模块

    一.包的概念 包:一系列模块的集合体.包通过文件夹管理一系列功能相近的模块 重点:包中一定有一个专门用来管理包中所有模块的文件 包名:存放一系列模块的文件夹的名字 包名(对象)存放的是管理模块的那个文 ...

  9. day16——自定义模块、time、datetime、random

    day16 自定义模块 自定义一个模块 import :导入(拿工具箱) # import test # test.func() 导入发生的事情 在当前的名称空间中开辟一个新的空间 将模块中所有的代码 ...

随机推荐

  1. SpringBoot | idea新建项目

    1.new ----> Spring Initializr 2.设置相应文件名 3.选择需要配置

  2. [题解](组合数/二位前缀和)luogu_P2822组合数问题

    首先要知道C(n,m)=C(n-1,m)+C(n-1,m-1),这样显然是一个杨辉三角,这样大部分的问题就解决了, 那么判能否整除只需要杨辉三角对k取模即可, 而对于多组数据的k都是一样的,所以用前缀 ...

  3. [题解](次短路)luogu_P2865路障(未)

    好像是个不需要vis数组的次短路,跑到收敛,然而给我脑袋弄炸了......到现在还没懂.......究竟次短路应该怎么求a...... 抄题解: #include<bits/stdc++.h&g ...

  4. 采集-telegraf

    1 介绍 Telegraf是一款Go语言编写的metrics收集.处理.聚合的代理其设计目标是较小的内存使用,通过插件来构建各种服务和第三方组件的metrics收集Telegraf由4个独立的插件驱动 ...

  5. 2017"百度之星"程序设计大赛 - 资格赛 度度熊的王国战略

    度度熊的王国战略 度度熊国王率领着喵哈哈族的勇士,准备进攻哗啦啦族. 哗啦啦族是一个强悍的民族,里面有充满智慧的谋士,拥有无穷力量的战士. 所以这一场战争,将会十分艰难. 为了更好的进攻哗啦啦族,度度 ...

  6. JS语法学习笔记

    JS语法: JS知识点一览图 JS知识点一览图 在function中写this,在本function中可以显示,写Person则显示undefined. 在function中写Person,在func ...

  7. 内存泄露,C++

    内存泄露,C++通常是指new出来的内存没有delete掉.在你的代码里边,new了一块内存,然后马上就delete,自然就没有内存泄露了(呃……其实我也不确定啦,因为你用的是delete,而不是de ...

  8. LINUX一网卡多IP设置

    方法1:少量IP手动绑定(这里以绑定IP到eth0为例,其它网卡的话修改相应的文件名即可) 1.复制ifcfg-eth0的网卡配置文件并改名为ifcfg-eth0:0 [root@akinlau /] ...

  9. LR中排序脚本

    /* * LoadRunner Java script. (Build: 670) * * Script Description: * */ import lrapi.lr; public class ...

  10. SQLServer同一实例下事务操作

    参考代码: 引用Dapper public bool OrderAdd2(User user, Order order) { string dbString = ConfigurationManage ...