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,5,20,14,20,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,5,2)) # randrange(起始,终止,步长)
# print(random.choice([1,2,3,4,5,])) # 选择一个元素
# print(random.choices([1,2,3,4,5,],k=2)) # 选择两个元素,会有重复
# print(random.sample((1,2,3,4,5),k=2)) # 选择两个元素,不会有重复(除非只有两个) # lst = [1,2,3,4,5,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,5,2)) # randrange(起始,终止,步长)
# print(random.choice([1,2,3,4,5,])) # 选择一个元素
# print(random.choices([1,2,3,4,5,],k=2)) # 选择两个元素,会有重复
# print(random.sample((1,2,3,4,5),k=2)) # 选择两个元素,不会有重复(除非只有两个) # lst = [1,2,3,4,5,6,7,8,9,0]
# random.shuffle(lst) # 顺序打乱
# print(lst)

Python模块01/自定义模块/time模块/datetime模块/random模块的更多相关文章

  1. Python包,json&pickle,time&datetime,random模块

    补充内容: 解决模块循环导入的两种方法:(不得已而为之,表示程序结构不够严谨) 将导入模块语句放在文件最下方 保证语句导入之前函数内代码能够被执行 将导入语句放进函数体内 使其不影响整个函数的运行 包 ...

  2. python基础--常用的模块(collections、time、datetime、random、os、sys、json、pickle)

    collection模块: namedtuple:它是一个函数,是用来创建一个自定义的tuple对象的,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素.所以我们就可以 ...

  3. collections、time、datetime、random模块

    今日内容概要 1.re模块的其他知识 2.正则起别名与分组机制 3.collections模块 4.time与datetime模块 5.random随机数模块 今日内容详细 re模块的其他知识 imp ...

  4. python random模块 - 小驹的专栏 - 博客频道 - CSDN.NET

    python random模块 - 小驹的专栏 - 博客频道 - CSDN.NET python random模块 分类: python 2011-11-15 15:31 6037人阅读 评论(2) ...

  5. Python中的random模块,来自于Capricorn的实验室

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

  6. Python中的random模块

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

  7. python学习之random模块

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

  8. Python之数据加密与解密及相关操作(hashlib模块、hmac模块、random模块、base64模块、pycrypto模块)

    本文内容 数据加密概述 Python中实现数据加密的模块简介 hashlib与hmac模块介绍 random与secrets模块介绍 base64模块介绍 pycrypto模块介绍 总结 参考文档 提 ...

  9. python random 模块的用法

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

随机推荐

  1. 短短1天我学会了如何修改Butterfly的配置文件

    目录 一.修改默认语言 二.创建标签.分类.关于和留言版页面 三.添加搜索框 四.飘带背景 五.使用Valine添加评论功能并支持邮箱提醒 六.收录谷歌.百度 一.修改默认语言 说明:安装Butter ...

  2. k8s的两种网络方案与多种工作模式[flannel与calico]

    k8s的两种网络方案与多种工作模式 1. Flannel: flannel有三种工作模式: 1. vxlan(隧道方案) 2. host-gw(路由方案) 2. udp(在用户态实现的数据封装解封装, ...

  3. 05.DBUnit的使用

    相信做过单元测试的人都会对JUnit 非常的熟悉了,今天要介绍的DbUnit(http://dbunit.sourceforge.net/ ) 则是专门针对数据库测试的对JUnit 的一个扩展,它可以 ...

  4. 新手安装配置git简洁教程

    第一步,下载安装git 打开 [git官网] https://git-scm.com/,下载git对应操作系统的版本. 所有东西下载慢的话就可以去找镜像!官网下载太慢,我们可以使用淘宝镜像下载:htt ...

  5. dart快速入门教程 (7.4)

    7.12.多态 多态字面上理解就是多种状态,通俗的说,多态表现为父类定义一个方法不去实现,子类继承这个方法后实现父类的方法,这个方法有多种表现 // import 'person.dart'; voi ...

  6. 从数据库中取时间值,遇到:java.sql.Timestamp cannot be cast to java.lang.Long

    将 java.sql.Timestamp 类型转换为 java.util.Date 类型.二者其实是父子关系,直接 Date d = (Date)时间戳 就可以了. Date d = (Date)时间 ...

  7. 洛谷P1220关路灯【区间dp】

    题目描述 某一村庄在一条路线上安装了 \(n\) 盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯 ...

  8. 看完这篇Redis缓存三大问题,保你面试能造火箭,工作能拧螺丝。

    前言 日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题. 一旦涉及大数据量的需求,如一些商品抢购的情景,或者主页访问量瞬间较 ...

  9. List AND Set

    第二章 List集合 Collection中的常用几个子类(java.util.List集合.java.util.Set集合). 1.1 List接口介绍 java.util.List接口继承自Col ...

  10. c语言学习笔记第三章———数据和C

    B站有视频演示 本章将会讲解c语言的数据定义和使用,您将会了解int.float.double.char的含义,了解命名的规则,对c语言会有更加深刻的认识. 变量命名: 我们先讲上次视频没讲的变量命名 ...