1. 递归

    • 递归调用

      • 一个函数,调用了自身,称为递归调用

      • 递归函数:一个会调用自身的函数称为递归函数

      • 凡是循环能干的事,递归都能干

    • 方式:

      • 写出临界条件

      • 找这一次和上一次的关系

      • 假设当前函数已经能用,调用自身计算上一次的结果,再求出本次的结果

  2. 栈和队列

      • 存取数据的特点: 先进后出

      • 模拟栈结构

        • 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)

            • 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模块的更多相关文章

  1. 常用模块(collections模块,时间模块,random模块,os模块,sys模块,序列化模块,re模块,hashlib模块,configparser模块,logging模块)

    认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的 ...

  2. day 20 collection模块 time 模块 os 模块

    一.collection模块 1.namedtuple: 生成可以使用名字来访问元素内容的tuple 2.deque: 双端队列,可以快速的从另外一侧追加和推出对象 3.Counter: 计数器,主要 ...

  3. python常用模块: random模块, time模块, sys模块, os模块, 序列化模块

    一. random模块  import random # 任意小数 print(random.random()) # 0到1的任意小数 print(random.uniform(-10, 10)) # ...

  4. day13 函数模块之序列化 random 模块 os模块 sys模块 hashlib模块 collections模块

    json import json dic = {'k1':'v1','k2':'v2','k3':'v3'} str_dic = json.dumps(dic) #序列化:将一个字典转换成一个字符串 ...

  5. random模块 os模块

    # random# import random# random.random() # 大于0且小于1之间的小数# random.randint() # 大于等于1且小于等于3之间的整数# random ...

  6. Python进阶(九)----json模块, pickle模块, os模块,sys模块,hashlib模块

    Python进阶----json模块, pickle模块, os模块,sys模块,hashlib模块 一丶序列化模块 什么是序列化: ​ 将一种数据结构,转换成一个特殊的序列(特殊字符串,用于网络传输 ...

  7. json模块 os模块 文件加密

    目录 一:random随机模块 二:os模块 三:文件处理选择任意视频 四:sys模块 五:实现文件执行加密操作 六:json 序列化模块 七:json序列化 反序列化 八:json 文件写读方式 九 ...

  8. random 模块 时间模块(time) sys模块 os模块

    random  模块 1.随机小数 random.random()  0-1内的随机小数 random.uniform(1,5)  1-5范围内的随机小数 2.随机整数 random.randint( ...

  9. day 18 random模块 时间模块 sys模块 os模块

    import random 利用random模块可以进行从一个列表或者数字范围之间随机取出一个数字 # 取随机小数 : 数学计算 print(random.random()) # 取0-1之间的小数 ...

随机推荐

  1. SWF在线绘本批量制作高质量PDF的新方法(重点在批量制作)

    SWF在线绘本批量制作高质量PDF的新方法(重点在批量制作) 2012-12-21  未来决定...       http://www.ebama.net/thread-107643-1-1.html ...

  2. 【To Read】LeetCode | Jump Game II(转载)

    题目: Given an array of non-negative integers, you are initially positioned at the first index of the ...

  3. iOS 万能跳转界面方法 (runtime实用篇一)

    http://www.cocoachina.com/ios/20150824/13104.html 作者:汉斯哈哈哈 授权本站转载. 在开发项目中,会有这样变态的需求: 推送:根据服务端推送过来的数据 ...

  4. 流程控制 Day06

    package com.sxt.arraytest2; public class breakTest { public static void main(String[] args) { label: ...

  5. 05Dockerfile简介

    Dockerfile是一个用于构建Docker镜像的文本文件,其中包含了创建Docker镜像的全部指令.基于这些指令,可以使用"docker  build"命令来创建镜像. 一:用 ...

  6. 逆序对(POJ2299 Ultra-QuickSort)

    #include<bits/stdc++.h> using namespace std; int n; ],b[],ans;//a为待排序数组,b为临时数组,ans为逆序对数 void m ...

  7. SDUT-2133_数据结构实验之栈与队列三:后缀式求值

    数据结构实验之栈与队列三:后缀式求值 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 对于一个基于二元运算符的后缀表示式 ...

  8. HZOJ 矩阵游戏

    大水题一个,然而由于两颗线段树的阴影我死了…… 算法一:对于50%的数据: 送分,直接一个一个乘,时间复杂度O(KN). 算法二:对于80%的数据:如果我们不一个一个乘,将第i行的和乘x ,第j列的和 ...

  9. oracle使用DECODE函数来减少处理时间

    使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表. 例如: SELECT COUNT(*),SUM(SAL) FROM EMP WHERE DEPT_NO = 0020 AND ENAM ...

  10. VMware station 安装报错 failed to install the hcmon driver

    VMware station 安装报错 failed to install the hcmon driver 1.将 C:\Windows\System32\drivers 下的hcmon.sys改名 ...