递归&时间模块&os模块
Posted fengzi759
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归&时间模块&os模块相关的知识,希望对你有一定的参考价值。
-
-
递归调用
-
一个函数,调用了自身,称为递归调用
-
递归函数:一个会调用自身的函数称为递归函数
-
凡是循环能干的事,递归都能干
-
-
方式:
-
写出临界条件
-
找这一次和上一次的关系
-
假设当前函数已经能用,调用自身计算上一次的结果,再求出本次的结果
-
-
-
栈和队列
-
栈
-
存取数据的特点: 先进后出
-
模拟栈结构
-
stack = []
-
-
压栈(向栈里存数据)
-
stack.append("A")
-
stack.append("B")
-
-
出栈(向栈里取数据)
-
stack.pop()
-
-
-
队列
-
存取数据的特点: 先进先出
-
导入库 import collections
-
queue = collections.deque()
-
创建一个队列
-
-
进队(存数据)
-
queue.append("A")
-
queue.append("B")
-
-
出队(取数据)
-
resl = queue.popleft()
-
-
-
递归目录遍历 见代码
-
栈模拟递归遍历目录(深度遍历) 见代码
-
队列模拟递归遍历目录(广度遍历) 见代码
-
时间相关模块
-
引入 import time 模块
-
time
-
UTC(世界协调时间): 格林尼治天文时间,世界标准时间,再中国来说是UTC+8
-
DST(夏令时):是一种节约能源而人为规定时间制度,在夏季调快1个小时
-
时间的表示形式
-
-
以整型或浮点型表示时间的一个以秒为单位的时间间隔。这个时间间隔的基础值是从1970年1月1日零晨开始算起
-
-
元组
-
一种Python的数据结构表示,这个元组有9个整型内容
-
year
-
month
-
day
-
hours
-
minutes
-
seconds
-
weekdays
-
Julia day
-
flag (-1 或 1 或0)
-
-
格式化字符串
-
%a 本地(locale) 简化星期名称
-
A 本地完整星期名称
-
%b 本地简化月份名称
-
%B 本地完整月份名称
-
%c 本地相应的日期和时间表示
-
%d 一个月中的第几天(01~31)
-
%H 一天中的第几个小时(24小时制,00~23)
-
%I 第几个小时(12小时制,01~12)
-
%j 一年中的第几天 (001~366)
-
%m 月份(01~12)
-
%M 分钟数(00~59)
-
%p 本地am或者pm的相应符
-
%S 秒(01~61)
-
%U 一年中的星期数。(00~53 星期天是一个星期的开始)第一个星期天之前的所有天数都放在第0周
-
%w 和%U基本相同,不同的是%W以星期一为一个星期的开始
-
%W 和%U 基本相同,不同的是%W以星期一为一个星期的开始
-
%x 本地相应日期
-
%X 本地相应时间
-
%y 去掉世纪的年份(00~99)
-
%Y 完整的年份
-
%Z 时区的名字(如果不存在为空字符)
-
%% ‘%‘字符
-
-
-
time时间模块的用法
-
c=time.time() 返回当前时间的时间戳,浮点数形式,不需要参数
-
将时间戳转为UTC时间元组
-
t = time.gmtime(c)
-
-
将时间戳转为本地时间元组
-
b = time.localtime(c)
-
-
将本地时间元组转成时间戳
-
m = time.mktime(b)
-
-
将时间元组转成字符串
-
s=time.asctime(b)
-
值为 Thu Sep 26 16:31:19 2019
-
-
将时间戳转为字符串 相当于 time.asctime(time.localtime(time.time()))
-
p=time.ctime(c)
-
值为 Thu Sep 26 16:31:19 2019
-
-
将时间元组转换成给定格式的字符串,参数2为时间元组,如果没有参数2,默认转当前时间
-
q =time.strftime("%Y-%m-%d %H:%M:%S",b)
-
值为 2019-09-26 16:31:19
-
-
将时间字符串转为时间元组
-
w = time.strptime(q, "%Y-%m-%d %X")
-
-
延迟一个时间,整型或者浮点型
-
time.sleep(4)
-
-
返回当前程序的cup时间
-
Unix始终返回全部的运行时间
-
windows 从第二次开始,都是以第一个调用此函数的开始时间戳作为基数
-
time.clock() 现在版本不支持
-
time.perf_counter() 现在版本支持这个
-
-
-
-
datetime模块
-
概述
-
datetime 比time高级了不少,可以理解为datetime基于time进行了封装,提供了各位使用的函数,datetime模块的接口更直观,更容易调用
-
-
模块中的类:
-
datetime
-
同时有时间和日期
-
-
timedelta
-
主要用于计算时间的跨度
-
-
tzinfo
-
时区相关
-
-
time
-
只关注时间
-
-
date
-
只关注日期
-
-
-
datetime时间模块的用法
-
获取当前时间
-
d1 = datetime.datetime.now()
-
print(d1)
-
-
获取指定时间
-
d2 = datetime.datetime(1999,10,1,10,28,25,123456)
-
print(d2)
-
-
将时间转为字符串
-
d3 = d1.strftime("%y-%m-%d %X")
-
print(d3)
-
-
将格式化字符串转为datetime对象
-
注意:转换的格式要与字符串一致
-
d4 = datetime.datetime.strptime(d3,"%y-%m-%d %X")
-
print(d4)
-
-
datetime可做数学运算
-
d5 = datetime.datetime(1999,10,1,10,28,25,123456)
-
d6= datetime.datetime.now()
-
d7 = d6-d5
-
print(d7)
-
取到间隔的天数
-
print(d7.days)
-
-
取到间隔天数除外的秒数
-
print(d7.seconds)
-
-
-
-
-
calendar模块(日历模块)
-
导入模块 import calendar
-
calendar模块的用法
-
返回指定某年某月的日历
-
s1 = calendar.month(2017,7)
-
print(s1)
-
-
返回指定年的日历
-
s2 = calendar.calendar(2017)
-
print(s2)
-
-
判断是否是闰年, 是闰年返回True 否则返回False
-
s3 = calendar.isleap(2000)
-
print(s3)
-
-
返回某个月的weekday的第一天和这个月的所有的天数
-
s4 = calendar.monthrange(2017,7)
-
print(s4)
-
-
返回某个月以每一周为元素的列表
-
s5 = calendar.monthcalendar(2017,7)
-
-
-
-
-
-
-
os: 包含了普遍的操作系统的功能
-
导入 import os
-
os.name
-
获取操作系统类型 nt-> windows posix->Linux、Unix或Mac OS X
-
-
os.uname()
-
打印操作系统详细的信息(windows 不支持)
-
-
os.environ()
-
获取操作系统中的环境变量
-
os.environ.get("APPDATA") 获取指定环境变量
-
-
os.curdir
-
获取当前目录 ./a/
-
-
os.getcwd()
-
获取当前工作目录,即当前python脚本所在的目录
-
-
os.listdir(path)
-
path为目录
-
以列表的形式返回指定目录下的所有的文件
-
-
os.mkdir("sunck")
-
在当前目录下创建新目录
-
()里面也可以写绝对路径
-
-
os.rmdir("sunck")
-
删除目录
-
()里面也可以写绝对路径
-
-
os.stat(path)
-
path为路径
-
获取文件属性
-
-
os.rename(old,new)
-
重命名
-
old为旧目录名字,new为新目录名字
-
-
os.remove(path)
-
path为路径
-
删除普通文件
-
-
os.system(“notepad”)
-
运行shell命令(打开记事本)
-
-
os.system("write")
-
打开写字板
-
-
os.system("mspaint")
-
打开画板
-
-
os.system("msconfig")
-
打开系统设置
-
-
os.system("shutdown -s -t 500")
-
关机
-
-
os.system("shutdown -a")
-
取消自动关机
-
-
os.system("taskkill /f /im notepad.exe")
-
关闭记事本
-
想关闭哪个 改notepad就行
-
-
有些方法存在os模块里,还有些存在于os.path里
-
os.path.abspath(path)
-
查看当前的绝对路径
-
. 为当前路径
-
path为文件名或者目录名
-
-
os.path.join(p1,p2)
-
拼接路径
-
注意:参数2里开始不要有斜杠
-
p1,p2为路径
-
-
os.path.split(path2)
-
拆分路径
-
path2 为路径
-
os.path.splitext(path2)
-
获取扩展名
-
-
-
os.path.isdir(path2)
-
判断是否是目录 是目录返回True 不是目录返回False
-
-
os.path.isfile(path2)
-
判断文件是否存在
-
-
os.path.exists(path2)
-
判断目录是否存在
-
-
os.path.getsize(path2)
-
获取文件大小(字节)
-
-
os.path.dirname(path2)
-
获取文件的目录
-
-
os.path.basename(path2)
-
-
以上是关于递归&时间模块&os模块的主要内容,如果未能解决你的问题,请参考以下文章