一.什么是模块:
模块就是别人写好的代码,放在一个py文件里,给你使用
二.模块有三种:
内置模块 / 第三方模块 / 自定义模块
三.内置函数:
是每一个py程序在启动的时候都会加载到内存空间中的
四.内置模块:
以文件的形式存储在硬盘中,你用到 / 导入的时候才开始加载到内存
五.你的py文件名永远不准和模块的名字一样
一.time 时间模块
时间在程序中有什么用:
计算代码执行用时,测试效率
日志:程序执行(用户的行为)的记录
定时器:记录用户的重要时间:出生日期/注册日期/入职日期
python程序中,时间一共有三种格式:
时间戳时间,float时间 :1542072130.3895912 : 给计算机用的
英国伦敦 1970-1-1 0:0:0 0时区
北京时间 1970-1-1 8:0:0
构化时间(tuple时间)
格式化时间,str时间 : '2018-11-13 9:21:50':给用户看的
s=time.time() 时间戳 (系统时间)
s = time.strftime("%Y / %m / %d %H : %M: %S") 格式化时间
s = time.localtime() 结构化时间
时间戳转换成格式化时间
import time
t = time.localtime(188888) #结构化
s = time.strftime("%Y / %m / %d %H : %M : %S" , t) #格式化
print(s)
格式化转成时间戳
import time
s="2020-10-01 12:18:12"
t=time.strptime(s,"%Y / %m / %d / %H : %M : %S") 结构化时间
print(time.mktime(t)) 转化时间戳
⽇期格式化的标准:
%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 当前时区的名称
%% %号本
计算时间差练习:
练习一
1.显示当前时间24小时之前的 年月日 时分秒
方法一 :
import time
time_now = time.time()
print(time_now)
print(60*60*24)
div_time = time_now - 86400
print(div_time)
struct_t = time.localtime(div_time)
print(time.strftime("%Y-%m-%d %H:%M:%S",struct_t))
方法二:
st_now = time.localtime()
print('%s-%s-%s %s:%s:%s'%(st_now.tm_year,st_now.tm_mon,
st_now.tm_mday - 1,
st_now.tm_hour,st_now.tm_min,
st_now.tm_sec
))
练习二
2.显示当前月的第一天的0:0:0的时间戳时间
import time
st_now = time.localtime()
str_t1 = time.strftime('%Y-%m',st_now)
time_tu = time.strptime(str_t1,'%Y-%m')
print(time.mktime(time_tu))
str_t2 = time.strftime('%Y-%m-1 0:0:0',st_now)
time_tu = time.strptime(str_t2,'%Y-%m-%d %H:%M:%S')
print(time.mktime(time_tu))
二.random 随机模块
取随机小数:
import random
print(random.random()) # (0,1) 0到1之间的小数
print(random.uniform(1,10)) # (n,m) n到m之间的小数
取随机整数:*****
import random
print(random.randint(0,1)) # [n,m] 包即含n又包含m
print(random.randrange(0,5)) # [n,m) 顾头不顾尾
print(random.randrange(0,5,2)) # [n,m) 还可以取步长 0到5每俩个取一个
随机抽取:
import random
l = [1,2,'abc',{'k':'v'},(1,2,3)]
print(random.choice(l)) 可以抽取任意一个值
print(random.sample([1,2,'abc',{'k':'v'},(1,2,3)],3))随机抽取三个,参数给几个就随机抽取几个
从列表里面 choice 3次 和 sample(l,3) 概率不一样
打乱顺序:
import random
l = [1,2,'abc',{'k':'v'},(1,2,3)] random.shuffle(l) print(l)
六位纯数字验证码:
import random
def get_code(n=6):
s = ''
for i in range(n):
num = random.randint(0,9)
s+=str(num)
return s
print(get_code(6))
4位字母+数字的验证码:
import random
def code(n=4):
end = ''
for i in range(n):
num = str(random.randint(0,9))
alpha_up = chr(random.randint(65,90))
alpha_low = chr(random.randint(97,122))
aim = random.choice([num,alpha_up,alpha_low])
end += aim
return end
print(code())
四位字母加数字和六位字母加数字:
import random
def code(n=4,alpha = True):
end = ''
for i in range(n):
aim = str(random.randint(0,9))
if alpha:
alpha_up = chr(random.randint(65,90))
alpha_low = chr(random.randint(97,122))
aim = random.choice([aim,alpha_up,alpha_low])
end += aim
return end
print(code(n=6,alpha=False)) #六位数字
print(code()) #不写默认四位数字+字母
抢红包,用户输入红包金额和个数,可以生成n个随机金额的红包:
import random
def red_box(money,n):
lst = []
for i in range(n):
num = random.randint(1,10000)
lst.append(num)
sum_m = sum(lst)
percent_lst = [num/sum_m for num in lst]
for per in percent_lst:
print(round(per*money,2))
red_box(200,10)
三. os 操作系统交互的模块
open 操作系统提供给你的机制 能够在python中操作文件
文件和文件夹相关:
os.remove() 删除一个文件
os.rename("oldname","newname") 重命名文件/目录
os.listdir("dirname") 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.rmdir("dirname") 删除单级空目录,若目录不为空则无法删除,报错
os.mkdir("dirname") 生成单级目录
os.removedirs("dirname")若目录为空,则删除,并递归到上一级目录,一次类推
os.makedirs("dir1 /dir2") 可生成多层递归目录
os.stat("path / filename") 获取文件 / 目录信息
print(os.stat(r'E:s17day171.今日内容.py')) r转义
stst 结构:
st_size: 普通文件以字节为单位的大小,包含等待某些特殊文件的数据
st_atime:上次访问的时间
st_mtime:最后一次修改的时间
操作系统,python工作目录相关的:
os.system("dir") 运行shell命令,直接显示
os.popen("dir").read() 运行shell命令,获取执行结果
ret=os.popen("dir")
print(ret.read())
os.getcwd()当前python的工作目录
这个程序是在那个路径下运行的,当前工作目录就是哪个路径
open("test","w").close()
工作目录:你创建文件/创建文件夹实际上都是跟着工作目录走的
和你当前执行的这个文件并没有关系
os.chdir("dirname")改变当前脚本工作目录,相当于shell下cd
在python中执行操作系统的命令:
os.path.join("绝对路径","文件名/文件夹") 拼接目录
os.path.abspath 获取当前文件的规范的绝对路径
os.path.split 将path分割成目录和文件名二元组返回
os.path.exists 如果path存在,返回True,如果path不存在,返回False
os.path.isfile 如果path是⼀一个存在的⽂文件,返回True。否则返回False
os.path.isdir 如果path是⼀一个存在的⽬目录,则返回True。否则返回False
os.path.getsize 返回past的大小