python 16 模块

模块

1. 自定义模块

1.1 模块分类

模块的分类:
    1.内置模块(标准库)——python解释器自带的.py文件(模块);
    2.第三方模块-- 需要额外下载的  (pypi)
    3.自定义模块(程序员写的) -- 不需要额外下载
查找顺序:3——1——2

分模块的好处:
    1.避免写重复代码;
    2.可以多次利用;
    3.拿来主义

1.2 模块的导入

# 导入
import 模块名   # 模块名不可带后缀名
import 模块名 as 别名
# 使用别名可使文件名更短,也可给多个导入模块起一个名字,做兼容
导入发生的变化:
    1.当前名称空间中开辟一个新的空间(名字为模块的名字)
    2.将代码中所有的代码执行(加载进去)
    3.通过模块名.进行查找模块内的函数等。
多次导入相同模块时,默认导入一次。

1.3 import 和 from

import test  # 将整个test模块加载
    优点:不会和当前文件定义的变量或者函数发生冲突
    缺点:占用内存比较大
from test import func  #将模块中的func函数加载
    优点:占用内存比较小
    缺点:会和当前文件定义的变量或者函数发生冲突 # 解决方法: 起别名

1.4 from 模块名 import *

from test import *  # 将模块内代码全部加载,会出现覆盖的现象,不能解决
__all__ = ["可以被导入的函数名和变量名"]  # 在定义模块中增加,配合"*"使用,放入列表中的,才可被调用

1.5 模块的用法:

# 坑:不可用环形导入,但可放函数内被调用
模块的两种用法:
    1.脚本:(在cmd中执行:  python 路径)
    2.模块(不使用或者导入)

if __name__ == '__main__':  # 测试接口(在当前文件)
  在模块中使用__name__就是"__main__"(当前py文件)
  当模块被导入时__name__就是被导入模块的名字

1.6 导入路径

相对路径:
from day15.t1 import test
绝对路径:
from sys import path   # 得到一个模块框架的列表
path.insert(0,"路径")   # 将自定义模块加入列表,可以import

2. time 模块

? 可用于日志记录登陆时间、计算时间。

2.1 时间戳

import time  # 导入
print(time.time())
# 时间戳 格林尼治时间是从1970年1月1日00:00:00开始按秒计算的偏移量  返回的是浮点数可运算

time.sleep(3)       # 睡眠  秒

2.2 格式化字符串时间(Format String)

#python中时间日期格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

2.3 时间之间的转换

print(time.strftime("%Y-%m-%d %H:%M:%S"))
    # 2019-07-25 15:47:36   当前时间的字符串

print(time.gmtime())    # 结构化时间
    # time.struct_time(tm_year=2019, tm_mon=7, tm_mday=25, tm_hour=7, tm_min=52, tm_sec=48, tm_wday=3, tm_yday=206, tm_isdst=0)       # 当前UTC(伦敦)时间  命名元组,可索引
print(time.gmtime()[0])   # 2019
print(time.gmtime(1564042674.8529472))
    # time.struct_time(tm_year=2019, tm_mon=7, tm_mday=25, tm_hour=8, tm_min=17, tm_sec=54, tm_wday=3, tm_yday=206, tm_isdst=0)

print(time.localtime())  #当前北京时间
    # time.struct_time(tm_year=2019, tm_mon=7, tm_mday=25, tm_hour=16, tm_min=14, tm_sec=16, tm_wday=3, tm_yday=206, tm_isdst=0)

print(time.strptime("2019-07-25 16:17:54","%Y-%m-%d %H:%M:%S"))
  # 将字符串时间进行结构化
  # time.struct_time(tm_year=2019, tm_mon=7, tm_mday=25, tm_hour=16, tm_min=17, tm_sec=54, tm_wday=3, tm_yday=206, tm_isdst=-1)

# 将时间戳转换成字符串时间 (先将时间戳 结构化,再格式化,可以给用户看)
print(time.strftime("%Y-%m-%d %H:%M:%S",
                    time.gmtime(1564042674)))
    # 2019-07-25 08:17:54  (UTC时间)

print(time.strftime("%Y-%m-%d %H:%M:%S",
                    time.localtime(1564042674)))
    # 2019-07-25 16:17:54 (北京时间)

# 将字符串时间转换成时间戳 (先将字符串时间结构化,再转换成时间戳)
print(time.mktime(time.strptime("2019-07-25 16:17:54","%Y-%m-%d %H:%M:%S")))        # 时间戳 1564042674
总结:
# 1. 结构化时间-->字符串时间
# time.strftime("格式定义","结构化时间") 结构化时间参数不传,则显示当前时

# 2.字符串时间-->结构化时间
# time.strptime(时间字符串,字符串对应格式)

# 3.时间戳-->结构化时间
# time.gmtime(时间戳)/time.localtime(时间戳)

# 4.结构化时间-->时间戳
# time.mktime(结构化时间)

# 5.转换
# time.mktime(time.strptime())  # 字符串时间-->时间戳
# time.strftime("格式",time.localtime(时间戳)) #时间戳-->字符串时间

小结:时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;元组则是用来操作时间的

3. datetime 模块

3.1 datetime 的操作

from datetime import datetime,timedelta
# datetime -- 对象
print(datetime.now())   # 获取当前时间

print(datetime(2019,5,20,13,14,00))  # 格式化 2019-05-20 13:14:00
print(datetime(2019,5,20,13,14,00)-datetime(2019,5,20,11,14,00))
    # 格式化时间后相减  2:00:00

print(datetime.now().timestamp()) #将当前时间转化成时间戳

import time
print(datetime.fromtimestamp(150000000)) #将时间戳转化成当前时间

print(datetime.strptime("2019-10-10 22:23:24","%Y-%m-%d %H:%M:%S"))     # 将字符串转成对象
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))  # 将对象转成字符串

3.2 datetime的加减 (timedelta类)

print(datetime.now() + timedelta(hours=12))  # 当前时间加2小时
print(datetime.now() + timedelta(days=2))    # 当前时间加2天

4. random 模块

? random模块是一个随机模块,生活中经常遇到随机的场景,彩票,抓阄,打牌,等等,以后你的代码中如果遇到需要随机的需求:随机验证码,发红包等等,那么首先要想到的是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)

原文地址:https://www.cnblogs.com/yzm1017/p/11247106.html

时间: 2024-08-01 07:31:14

python 16 模块的相关文章

python——常用模块

time.asctime(time.localtime(1234324422)) python--常用模块 1 什么是模块: 模块就是py文件 2 import time #导入时间模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行"type(time.time())",返回的是float类型.

[转]python pickle模块

持久性就是指保持对象,甚至在多次执行同一程序之间也保持对象.通过本文,您会对 Python对象的各种持久性机制(从关系数据库到 Python 的 pickle以及其它机制)有一个总体认识.另外,还会让您更深一步地了解Python 的对象序列化能力. 什么是持久性? 持久性的基本思想很简单.假定有一个 Python 程序,它可能是一个管理日常待办事项的程序,您希望在多次执行这个程序之间可以保存应用程序对象(待办事项).换句话说,您希望将对象存储在磁盘上,便于以后检索.这就是持久性.要达到这个目的,

Python inspect模块学习

今天发现Python inspect模块中一个有趣的功能, 可以让我们方便地检视Python库中的源代码, 知道模块具体是怎样实现的, 满足了像我这样有偷窥欲的人-.- 那就是inspect中的getsource 它的用法如下: 例如要检视Python的The Zen of Python 我们可以: In [1]: import inspect In [2]: import this The Zen of Python, by Tim Peters Beautiful is better tha

简单实现并发:python concurrent模块

可以使用python 3中的concurrent模块,如果python环境是2.7的话,需要下载https://pypi.python.org/packages/source/f/futures/futures-2.1.6.tar.gz#md5=cfab9ac3cd55d6c7ddd0546a9f22f453 此futures包即可食用concurrent模块. 官方文档:http://pythonhosted.org//futures/ 对于python来说,作为解释型语言,Python的解释

python常用模块(1):collections模块和re模块(正则表达式详解)

从今天开始我们就要开始学习python的模块,今天先介绍两个常用模块collections和re模块.还有非常重要的正则表达式,今天学习的正则表达式需要记忆的东西非常多,希望大家可以认真记忆.按常理来说我们应该先解释模块概念性东西再来学习具体的模块使用.可是直接解释可能反而不好理解,模块的使用非常方便,所以我们采用先介绍使用常用模块过两天再具体进行模块概念的讲解. 预习: 实现能计算类似 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998

python第三方模块—psutil模块

系统基础信息采集模块作为监控模块的重要组成部分,能够帮助运维人员了解当前系统的健康程度,同时也是衡量业务的服务质量的依据,比如系统资源吃紧,会直接影响业务的服务质量及用户体验,另外获取设备的流量信息,也可以让运维人员更好地评估带宽.设备资源是否应该扩容.运用Python第三方系统基础模块,可以轻松获取服务关键运营指标数据,包括Linux基本性能.块设备.网卡接口.系统信息.网络地址库等信息.在采集到这些数据后,我们就可以全方位了解系统服务的状态,再结合告警机制,可以在第一时间响应,将异常现在苗头

python之模块datetime详解

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块datetime详解 import datetime #data=datetime.date(2015,11,9)#表示日期的类 #data=datetime.time(hour[,minute[,second[,microsecond[,tzinfo]]]])#表示时间的类,从小时时间开始为参数 #data=datetime.datetime(year,month,day[,hour[

python Queue模块使用

Python中,队列是线程间最常用的交换数据的形式.Queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外. 创建一个"队列"对象import Queueq = Queue.Queue(maxsize = 10)Queue.Queue类即是一个队列的同步实现.队列长度可为无限或者有限.可通过Queue的构造函数的可选参数maxsize来设定队列长度.如果maxsize小于1就表示队列长度无限. 将一个值放入队列中q.put(10)    put(item[

python常用模块上篇

python常见模块 分两篇分别介绍下述模块 time模块 random模块 hashlib模块 os模块 sys模块 logging模块 序列号模块 configparser模块 re模块 time模块 在python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: 1)时间戳:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行"type(time.time())",返回的是float类型. (2)格