- 递归
- 递归调用
- 一个函数,调用了自身,称为递归调用
- 递归函数:一个会调用自身的函数称为递归函数
- 凡是循环能干的事,递归都能干
- 方式:
- 写出临界条件
- 找这一次和上一次的关系
- 假设当前函数已经能用,调用自身计算上一次的结果,再求出本次的结果
- 递归调用
- 栈和队列
- 栈
- 存取数据的特点: 先进后出
- 模拟栈结构
- 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
- 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)
- print(s5)
- 返回指定某年某月的日历
- 栈
os模块
- 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.path.abspath(path)
原文地址:https://www.cnblogs.com/fengzi759/p/12001168.html
时间: 2024-07-31 15:14:41