递归-自定义模块

递归

1.自己调用自己

2.有明确的结束条件

递: 函数调用

归: 函数的返回值

官方说明,递归的最大深度是1000

def func(n):
    print(n)
    n += 1
    func(n)      
func(1)

可以修改递归的最大深度,引入sys

import sys
sys.setrecursionlimit(100)    #修改最大层次为100

 递归的应用:

创建文件夹,查看文件,删除文件

自定义模块

分类:

1.内置模块

2.第三方模块

3.自定义模块    一个py文件就是一个模块

在引入模块的时候,主要使用import   和from   import  两种方式

import

import 模块名            把这个模块下所有东西全部导入

引入多个模块的时候,不建议写在一行,一行一行导入

import 模块名 as 别名

import导入过来的功能需要使用 模块名.功能 去执行

import 模块名  多次导入的时候,实际只导入一次

from..import..

from 模块名 import ...  指定导入哪些内容,可以导入多个功能

from 导入多个模块的时候要一行一行的导入

from 模块名 import *    导入模块内的所有内容

from 模块名 import 功能1 as 别名1,功能2 as 别名2

from 模块名 import 功能      多次导入的时候,实际只导入一次

在模块内写__all__ = ['可以被*导入的内容']    自定义使用*的时候导入的内容

__name__   

在本文件内, __name__ = '__main__'   是当前文件的启动接口

在被当做模块导入的时候,__name__会变成被导入的模块名

模块的搜索路径

在from中  . 表示下一级   

和当前文件在同一个目录下,可以直接写文件夹的名字,比方说调用同一目录下的day7文件夹中的test文件

from day7 import test

from day7.test import *

不在一个大的目录下,首先要导入sys模块,然后将要使用的模块路径添加到系统的环境变量中

import sys
sys.path.insert(写入的位置,外部文件) 

模块重载

当一个文件被当做模块使用的时候,如果改变了模块里的代码,就需要重新运行一下导入它的这个文件

编译文件

被导入的模块,会生成一个pyc的后缀名的字节码,提升了加载和编译效率

源文件修改了,就会把pyc重写一份

循环导入

容易出现的问题,导入的时候形成了一个环状,报错

解决方法: 打破这个循环,可以把导入放在函数里

time模块

1.时间戳     使用time.time()获取  是浮点数

2.字符串时间

3.结构化时间

格式化字符串时间需要用到一下符号:

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 当前时区的名称
%% %号本身

时间戳和字符串时间不能够直接转换,要通过结构化进行转换

时间戳转换结构化时间:

gmtime()       英国伦敦时间 参数要放时间戳 不写默认使用当前的时间戳

localtime()     本地计算机时间 参数要放时间戳 不写默认使用当前的时间戳

结构化时间转换成时间戳:

time.mktime(time.localtime(1500000000))

时间戳转化成字符串时间:(不能直接转换,要先转成结构化时间,再转换成字符串时间)

print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))

字符串时间转化成结构化时间:

print(time.strptime('2017-10-7 13:14','%Y-%m-%d %H:%M'))

自己指定要转换的时间:

print(time.strftime('%Y-%m-%d',time.localtime(1500000000)))

datetime

python的标准库

from datetime import datetime    #导入
print(datetime.now())     #获取当前时间  字符串形式

datetime.timestamp()     # 获取时间戳

datetime.fromtimestamp(time.time())    #将时间戳转换成时间类型

datetime.striptime('2018-10-1 13:14','%Y-%m-%d %H:%M)   # 将字符串转换成一个时间类型

datetime.strftime(datetime.now(),'%Y-%m-%d %H:%M:%S')    # 把时间类型转化成字符串

timedelta 

主要用于修改

from
datetime import datetime,timedelta #导入 print(datetime.now()) #获取当前时间 print(datetime.now() + timedelta(hours = 1)) #当前时间加1小时 print(datetime.now() + timedelta(days = 1)) #当前时间加一天 print(datetime.now() - timedelta(days = 1)) #当前时间减一天 print(datetime.now() - timedelta(days = 1,hours = 2)) #当前时间减一天,同时减两小时
原文地址:https://www.cnblogs.com/sandy-123/p/10277790.html