自定义模块 time datetime random

悠悠 2023-10-10 10:16 130阅读 0赞

1.自定义模块

import

导入

  1. import test # test是模块名 test.func() # func() 是test模块中的函数调用

模块分类

1.内置模块

标准库,python解释器自带的.py文件(模块)

2.第三方模块

各种大神写的,需要额外下载的(并发编程开始讲解)(pypi)

3.自定义模块

自己写的,不需要额外下载

导入的过程

1.当前的名称空间中开辟一个新的空间(test)

2.将模块中所有的代码执行

3.通过模块名,进行查找函数(工具)

示例

  1. test模块 def func(): print("这是test文件下的func函数") def foo(): print("这是test文件下的foo函数") print(123) print(456) name = "这是名字"
  2. import test print(test.name) print(test.func()) # 123 # 456 # 这是名字 # 这是test文件下的func函数
  3. import test import test import test import test import test import test print(test.name) # 123 # 456 # 这是名字

别名的使用

  1. import test as t print(t.name) # 123 # 456 # 这是名字

兼容性

  1. test模块 def func(): print("扳手") meet模块 def func(): print("螺丝刀")
  2. msg = """ 1.扳手 2.螺丝刀 """ choose = input(msg) if choose == "1": import test as t elif choose == "2": import meet as t t.func()

import 和 from的区别

  1. import test # 把工具箱拿过来 from test import func # 把工具拿过来

import的优缺点

优点: 不会和当前文件定义的变量或者函数发生冲突

  1. test模块 name = "alex"
  2. import test name = "宝元" print(test.name) print(name) # alex # 宝元

缺点: 占用内存比较大

from的优缺点

优点: 占用内存比较小

缺点: 会和当前文件定义的变量或者函数发生冲突

  1. test模块 name = "alex"
  2. name = "宝元" from test import name print(name) # alex 下面的变量或者函数会覆盖上面的
解决办法
  1. test模块 name = "alex"
  2. name = "宝元" from test import name as n print(name) pirnt(n) # 宝元 # alex

from 模块名 import *

  1. test模块 name = "alex" def func(): print("这是test下的func函数")
  2. name = "宝元" def func(): print("123") from test import * print(name) func() # alex # 这是test下的func函数 # 注意会出现覆盖现象

__all__ = [“要被导入的功能名字”]

内存地址

  1. test模块 name = "alex" def func(): print("这是test下的func函数") def foo(): print("这是test下的foo函数")
  2. from test import foo print(foo) import test print(test.foo)

模块的用法

1.脚本(在cmd中执行 python test.py)

2.模块(不使用或者导入)

测试接口

  1. if __name__ == "__main__" 在当前模块中使用__name__就是"__main__" 当模块被导入的时候__name__就是被导入的模块名

路径

导入路径

  1. import meet print(meet.name)

使用相对路径

  1. from day15.t1 import meet print(meet.name)

使用绝对路径

  1. from sys import path path.insert(0,"D:\\") import meet print(meet.name)

模块的查找顺序

自定义模块 > 内置模块 > 第三方

2.time

time — 时间(内置模块)

time的方法

  1. import time 时间戳 print(time.time()) # 时间戳 浮点数 可计算 print(time.time() + 5000) 睡眠 time.sleep(3) # 睡眠 以秒为单位 时间节点 print(time.strftime("%Y-%m-%d %H:%M:%S")) # 年-月-日 时:分:秒 # 2019-07-25 16:43:24 结构化时间 时间戳转结构化 print(time.gmtime()) / print(time.localtime()) # time.struct_time(tm_year=2019, tm_mon=7, tm_mday=25, tm_hour=8, # tm_min=46, tm_sec=15, tm_wday=3, tm_yday=206, tm_isdst=0) print(time.gmtime()[0]) / print(time.localtime()[0]) # 2019 print(time.gmtime().tm_year) / print(time.localtime().tm_year) # 2019 字符串时间转结构化 print(time.strptime("2008-9-1 12:30:30","%Y-%m-%d %H:%M:%S")) 时间戳转换成字符串 print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime(156156641.46854))) # 1974-12-13 08:50:41 字符串转结构化转换成时间戳 print(time.mktime(time.strptime("2008-9-1 12:30:30","%Y-%m-%d %H:%M:%S"))) # 1220243430.0

3.datetime

datetime — 对象

datetime的方法

  1. from datetime import datetime 获取当前时间(浮点数) print(datetime.now()) # 2019-07-25 17:24:58.037219 计算时间差距 print(datetime(2019,5,20,13,14,00) - datetime(2019,5,20,14,20,00)) # -1 day, 22:54:00 将当前时间转化成时间戳 print(datetime.now().timestamp()) # 1564047101.042584 将时间戳转化成当前时间 print(datetime.fromtimestamp(1564047101.042584)) # 2019-07-25 17:31:41.042584 将对象转成字符串 print(str(datetime.now())) print(datetime.now().strftime("%Y-%m-%d %H:%M:%S")) # 2019-07-25 17:40:47 时间加减(datetime加减) from datetime import datetime,timedelta print(datetime.now() + timedelta(hours=30)) # 当前时间加30个小时 # 2019-07-27 00:19:38.461757

总结:

用处: 记录日志时使用

​ 计算时间

4.random

random — 随机

random的方法

  1. import random 0-1随机取值(浮点数) print(random.random()) # 0.04233141839466259 0-10随机取值(浮点数) print(random.uniform(1,10)) # 1.0434503538907838 1-3随机取值(包含1和3) print(random.randint(1,3)) # 1/2/3 randrange(起始,终止,步长)(顾头不顾尾) print(random.randrange(1,5,2)) # 1/3 随机选择一个元素 print(random.choice([1,2,3,4,5])) # 1/2/3/4/5 随机选择两个元素(会重复) print(random.choices([1,2,3,4,5],k=2)) # 从列表中随机选择两个元素(会有重复元素,比如:[1,1]) 随机选择两个元素(不会重复) print(random.sample([1,2,3,4,5],k=2)) # 从列表中随机选择两个元素(不会有重复元素,除非列表只有两个重复元素,比如[1,1]) 顺序打乱 lst = [1,2,3,4,5,6,7,8,9,0] random.shuffle(lst) print(lst) # [4, 3, 9, 5, 1, 2, 8, 7, 6, 0] # 随机打乱

转载于:https://www.cnblogs.com/beichen123/p/11253087.html

发表评论

表情:
评论列表 (有 0 条评论,130人围观)

还没有评论,来说两句吧...

相关阅读