什么是模块?
分类,认证 视频 评论
模块能干什么?
- 文件管理 提高文件的可读性,避免重复代码
- 拿来就用(避免重复造轮子)python中类库特别多
定义一个模块
一个文件就是一个模块(模块就是一个工具箱 工具(函数))
import 时会做三件事
- 将 .py文件中所有的代码读取到当前文件
- 当前文件开辟新空间
- 等待被调用
import 导入同一个模块名时,只执行一次
# import test#这里是调用自定义模块
# test.cen()
# import test as t#这里是调用自定义模块并起别名
# # t.cen()
# 当调用多次相同的模块的时候,只执行一次,这是字典原理,当字典中存在这一模块名的时候就不会再次添加。
#import只能把整个模块拿出来,不能将方法单个的拿出来
#导入模块时不能写后缀名
# from test import t1 as t # 从test工具箱中将t1这个工具拿过来
# 如果当前文件夹下没有自定义的模块,想要使用的时候可以通过
# from 文件名 import 模块名
# from day15 import ttt
# from day15.ttt import func
# func()
# 使用from的时候,如果调用的函数名与本页面的文件名冲突的时候可以起别名。
#如果自定义的模块名与内置模块的名相同的时候,修改自定义的模块名。
# import 后边不能加点操作
# import 和 from 的区别:
# 1.from只能执行导入的工具
# 2.import 能够执行整个模块中所有的功能
# 3.from容易将当前文件中定义的工能覆盖
# 4.from比import灵活
# import 和 from 使用的都是相对路径
#如果通过cmd下载第三方模块的时候
# pip3 install 模块名
# import sys # 和python解释交互接口
# print(sys.path)
# sys.path.append(r"C:\Users\oldboy\Desktop")
# print(sys.path)
# 模块导入顺序:
#sys.path.append(r"C:\Users\oldboy\Desktop")
# 内存 > 内置 > 第三方> 自定义
#sys.path.insert(0,r"C:\Users\oldboy\Desktop")
# 内存 > 自定义 > 内置 > 第三方
# 模块的两种用法: if __name__ == "__main__"
# 1.当做模块被导入 import from 如果调用文件时文件中的函数需要调用的称为模块
# 2.当做脚本被被执行 如果调用文件时文件中的函数能执行就称为脚本
# 只有别的盘的.py文件当做模块被导入时,字节码才会进行保留
# 以后你们导入模块会产生的坑
# 1.注意自己定义模块的名字
# import abcd
# abcd.func()
# 2.注意自己的思路 -- 循环导入时建议 导入模式放在需要的地方
# from test import b
# a = 10
# print(b)
# import test,c,abcd 不建议这样导入
# test.t1()
# print(c.ac)
# abcd.func()
# import test
# import c
# import abcd # 建议这样导入
# import from
# 下面的是整体
# from test import * # 拿整个工具箱
# t1()
# t2()
# print(tt)
# 在模块文件的顶端通过__all__ 控制要导入的内容
# __all__=[" "]
# time 模块
import time
# print(time.time()) # 时间戳 浮点数 秒
# time.sleep(3) # 秒
# 将时间戳转换成结构化时间
# print(time.localtime(time.time()))#命名元组,可以通过索引调用
# print(time.localtime(time.time())[0])
# print(time.localtime(time.time()).tm_year)
# #将结构化转化成时间戳
# print()
# time_g = time.localtime()#将时间戳转化成结构化时间
# print(time.strftime("%Y-%m-%d %H:%M:%S",time_g))#将结构化时间转化成字符串
# print(time.strptime("2018-06-09 03:23:23","%Y-%m-%d %H:%M:%S"))#将字符串转化成结构时间
# time_g = time.localtime()#将结构化时间转化成时间戳
# print(time.mktime(time_g))
# str_time = "2016-10-1 10:11:12"
# time_int = time.time() - time.mktime(time.strptime(str_time,"%Y-%m-%d %H:%M:%S"))
# print(time.localtime(time_int))
# 总结:
# time.time() 时间戳
# time.sleep() 睡眠
# time.localtime() 时间戳转结构化
# time.strftime() 结构化转字符串
# time.strptime() 字符串转结构化
# time.mktime() 结构化转时间戳
# %Y 年
# %m 月
# %d 日
# %H 时间
# %M 分钟
# %S 秒
from datetime import datetime
# print(datetime.now())#获取当前时间
# print(datetime(2018,10,6,12,11,12)-datetime(2017,10,5,12,3,22))#这里是计算差多少天小时分钟
# 指定时间
# 将对象转换成时间戳
# d = datetime.now()
# print(d.timestamp())
# 将时间戳转换成对象
# import time
# f_t = time.time()
# print(datetime.fromtimestamp(f_t))
#将对象转换成字符串
# d = datetime.now()
# print(d.strftime("%Y-%m-%d %H:%M:%S"))
# 将字符串转换成对象
# s = "2018-12-31 10:11:12"
# print(datetime.strptime(s,"%Y-%m-%d %H:%M:%S"))
# 可以进行加减运算
# from datetime import datetime,timedelta
# print(datetime.now() - timedelta(days=1))
# print(datetime.now() - timedelta(hours=1))
# random -- 随机数
import random
# print(random.randint(1,50))
# 选择1-50之间随机的整数
# print(random.random())
# 0-1 之间随机小数,不包含1
# print(random.uniform(1,10))
# 1- 10 之间随机小数,不包含10
# print(random.choice((1,2,3,4,5,7)))
# #从容器中随机选择一个
# print(random.choices((1,2,3,4,5,7),k=3))
# 从容器中随机选择3个元素,以列表的形式方式,会出现重复元素[ ]
# print(random.sample((1,2,3,4,5,7),k=3))
# 从容器中随机选择3个元素,以列表的形式方式,不会出现重复元素
# print(random.randrange(1,10,2)) # 随机的奇数或随机的偶数
# lst = [1,2,3,4,5,6,7]
# random.shuffle(lst)
# # 洗牌 将有序的数据打散
# print(lst)