Python模块01/自定义模块/time模块/datetime模块/random模块
发布时间:2020-12-20 12:54:01 所属栏目:Python 来源:网络整理
导读:Python模块01/自定义模块/time模块/datetime模块/random模块 内容大纲 1.自定义模块 2.time模块 3.datetime模块 4.random模块 1.自定义模块 1.自定义一个模块 # 1. 自定义一个模块 # import # 导入 (拿工具箱)模块分类:# 1.内置模块(标准库) -- python解释器
Python模块01/自定义模块/time模块/datetime模块/random模块内容大纲1.自定义模块 2.time模块 3.datetime模块 4.random模块 1.自定义模块1.自定义一个模块# 1. 自定义一个模块 # import # 导入 (拿工具箱) 模块分类: # 1.内置模块(标准库) -- python解释器自带的.py文件(模块) # 2.第三方模块(各种大神写的) -- 需要额外下载的 (并发编程开始讲解) (pypi) # 3.自定义模块(自己写的) -- 不需要额外下载 模块: 分模块的好处: # 1.避免写重复代码 # 2.可以多次利用 # 3.拿来主义 # import test # test.func() 2.导入发生的事情# 2.1 当前的名称空间中开辟一个新的空间(test) # 2.2 将模块中所有的代码执行 # 2.3 通过模块名.进行查找函数(工具) # print(locals()) # import test # print(locals()) # import test # print(test.name) # print(test.func()) #错误的示例: # import test.py # print(test.py.func()) # import test # import test # import test # import test # import test # import test # print(test.name) # import test as t # print(t.name) 重复导入会直接引用内存中已经加载好的结果 别名使用的好处: # 1.使用别名能够使文件名更短 # msg = """ # 1.扳手 # 2.螺丝刀 # >>> # """ # 做一兼容性 # choose = input(msg) # if choose == "1": # import meet # meet.func() # elif choose == "2": # import test # test.func() # # 做一兼容性 # choose = input(msg) # if choose == "1": # import meet as t # elif choose == "2": # import test as t # # t.func() # import test # 把工具箱拿过来 # from test import func # func() import 和 from 的区别 import # 把工具箱拿过来 缺点:占用内存比较大 优点:不会和当前文件定义的变量或者函数发生冲突 # import test # name = "宝元" # print(test.name) # print(name) from : 缺点:会和当前文件定义的变量或者函数发生冲突 # name = "宝元" # from test import name # print(name) 解决方法: # name = "宝元" # from test import name as n # print(name) # print(n) 优点:占用内存比较小 # name = "宝元" # def func(): # print("is 马桶推送器") # from test import * # print(name) # func() # from test import * 会出现覆盖的现象,不能解决 # 飘红不一定是报错 # from meet import * # print(func) # print(name) # # __all__ = ["可以被导入的函数名和变量名"] # from meet import foo # import meet # print(meet.foo) # __all__ = ["可以被导入的函数名和变量名"] # 模块导入时的坑 # name = "宝元" # import test # print(test.name) 模块的两种用法: # 1.脚本(在cmd中执行 python test.py) # 2.模块(不使用或者导入) # from meet import * # func() # __name__ == meet # from test import * # if __name__ == '__main__': # 测试接口 # func() 在当前模块中使用__name__ 就是 "__main__" 当模块被导入的时候__name__就是被导入的模块名 导入路径: # import meet # print(meet.name) 使用相对路径: # from day15.t1 import meet # print(meet.name) 使用绝对路径: # 错误示例: # from r"D:" import meet # from ../ 正确的绝对路径: # from sys import path # path.insert(0,"D:") # import meet # print(meet.name) 自定义 > 内置 > 第三方 2.time模块# time -- 时间 # import time # print(time.time()) # 时间戳 浮点数 # print(time.time() + 5000000000) # 时间戳 浮点数 # time.sleep(3) # 睡眠 # 秒 # print(time.strftime("%Y-%m-%d %H:%M:%S")) # 给人看的 # print(time.gmtime()) # 结构化时间 数据类型是是命名元组 # print(time.gmtime()[0]) # print(time.gmtime().tm_year) # 将时间戳转换成字符串时间 # print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime(1564028611.631374))) # 将字符串时间转换成时间戳 # print(time.mktime(time.strptime("2024-3-16 12:30:30","%Y-%m-%d %H:%M:%S"))) time重点: # time.time() # time.sleep() # time.gmtime() / time.localtime() # # time.strftime("格式化","结构化时间") # # time.strptime("字符串","格式化") # time.mktime() # "2019-10-14 17:30:20" 练习题 3.datetime模块# from datetime import datetime,timedelta # datetime -- 对象 # print(type(datetime.now())) # print(datetime.now()) # 获取当前时间 # print(datetime(2019,5,20,15,14,00) - datetime(2019,00)) # 将当前时间转化成时间戳 # t = datetime.now() # print(t.timestamp()) # 将时间戳转化成当前时间 # import time # print(datetime.fromtimestamp(15000000000)) # 将字符串转成对象 # print(type(datetime.strptime("2019-10-10 22:23:24","%Y-%m-%d %H:%M:%S"))) # 将对象转成字符串 # print(str(datetime.now())) # print(datetime.now().strftime("%Y-%m-%d %H:%M:%S")) # datetime加减 # print(datetime.now() + timedelta(hours=30 * 24 * 12)) # print(datetime.now() - timedelta(hours=30 * 24 * 12)) # 总结:time # 用处: 记录日志时使用 # 计算时间 4.random模块# import random # print(random.random()) # 0 ~ 1 # print(random.uniform(1,10)) # 1 ~ 10 # print(random.randint(1,50)) # 1 ~ 50(闭区间) # print(random.randrange(1,2)) # randrange(起始,终止,步长) # print(random.choice([1,2,3,4,])) # 选择一个元素 # print(random.choices([1,],k=2)) # 选择两个元素,会有重复 # print(random.sample((1,5),k=2)) # 选择两个元素,不会有重复(除非只有两个) # lst = [1,6,7,8,9,0] # random.shuffle(lst) # 顺序打乱 # print(lst) #练习题:验证码 5.今日总结# 1.自定义模块 # import 工具箱 # from 工具箱 import 工具 # from 工具箱 import * # __all__ = ["func","name"] # 控制*获取的工具 # 起别名 import from # 模块的两个功能: # if __name__ == '__main__': # 在当前模块中使用,if下边的代码会执行 # 当模块被导入的时候 if下边的代码不会执行 # 模块导入的坑: # 模块导入的路径: # 相对路径: # from 工具箱.工具箱 import 工具 # 绝对路径: # from sys import path # path.insert(0,绝对路径) # 自定义 > 内置 > 第三方 # 2.time # time.time() # 时间戳 浮点型 # time.sleep() # 睡眠 秒单位 # time.gmtime() / time.localtime() # 时间戳 -- 结构化 # time.strftime("格式化","结构化时间") # 结构化 - 字符串 # time.strptime("字符串","格式化") # 字符串 - 结构化 # time.mktime() # 结构化 -- 时间戳 # 3.datetime # 将当前时间转化成时间戳 # t = datetime.now() # print(t.timestamp()) # 将时间戳转化成当前时间 # import time # print(datetime.fromtimestamp(15000000000)) # 将字符串转成对象 # print(type(datetime.strptime("2019-10-10 22:23:24","%Y-%m-%d %H:%M:%S"))) # 将对象转成字符串 # print(str(datetime.now())) # print(datetime.now().strftime("%Y-%m-%d %H:%M:%S")) # datetime加减 # print(datetime.now() + timedelta(hours=30 * 24 * 12)) # print(datetime.now() - timedelta(hours=30 * 24 * 12)) # 4.random (随机数) # print(random.random()) # 0 ~ 1 # print(random.uniform(1,10)) # 1 ~ 10 # print(random.randint(1,50)) # 1 ~ 50(闭区间) # print(random.randrange(1,步长) # print(random.choice([1,])) # 选择一个元素 # print(random.choices([1,会有重复 # print(random.sample((1,不会有重复(除非只有两个) # lst = [1,0] # random.shuffle(lst) # 顺序打乱 # print(lst) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |