python 0基础学习笔记7:递归、栈、队列、时间模块
递归:
递归调用:一个函数调用了自身,成为递归调用。
递归函数:一个会调用自身的函数叫做递归函数。
凡是循环能干的事,递归都能干,但是不容易写出来。
方式:
1、写出临界条件。
2、找这一次和上一次的关系。
3、假设当前函数已经能用,调用自身计算上一次的结果,再求出本次的结果。
栈:
规则:先进后出。
#用列表模拟栈结构,因为没有现成的栈结构。 stack = [] #压栈(向栈里存数据) stack.append('A') print(stack) stack.append('B') print(stack) stack.append('C') print(stack) #出栈(在栈里取数据) res1 = stack.pop() print('res1=',res1) print(stack) res2 = stack.pop() print('res2=',res2) print(stack) res3 = stack.pop() print('res3=',res3) print(stack)
结果为:
[‘A’]
[‘A’, ‘B’]
[‘A’, ‘B’, ‘C’]
res1= C
[‘A’, ‘B’]
res2= B
[‘A’]
res3= A
[]
队列:
规则:先进先出。
import collections #创建一个队列 queue = collections.deque() print(queue) #进队(存数据) queue.append('A') print(queue) queue.append('B') print(queue) queue.append('C') print(queue) #出队(取数据) res1 = queue.popleft() print('res1=',res1) print(queue)
结果为:
deque([])
deque([‘A’])
deque([‘A’, ‘B’])
deque([‘A’, ‘B’, ‘C’])
res1= A
deque([‘B’, ‘C’])
深度遍历&广度遍历(第5/6节)
https://pan.baidu.com/s/1ULMBtfPN457yt8sYDL-wgw&shfl=sharepset
写爬虫时候,文件遍历的代码直接拿去用就行了。
时间相关模块:
UTC(世界协调时间):格林尼治天文时间,师姐标准时间,在中国就是UTC+8
DST(夏令时):是一种节约能源而人为规定的时间制度。在夏季调快一个小时。
时间表示形式:
1、时间戳:以整形或浮点型表示时间的一个以秒为单位的时间间隔。这个时间的基础值是从1970年1月1号凌晨开始算起,计算距它是多少秒。
2、元组:一种python的数据结构表示,这个元组有9个整形内容。year、month、day、minutes、seconds、weekday、Julia day、flag(1或-1或0)1表示DST,0表示正常时间。
3、格式化字符串:%A,%Y,%M,%m等等
time模块:
import time #返回当前时间的时间戳,浮点式形式,不需要函数 c = time.time() print(c) #将时间戳转为UTC时间元组 t = time.gmtime(c) print(t) #将时间戳转为本地时间元组 b = time.localtime(c) print(b) #将本地时间元组转为时间戳 m = time.mktime(b) print(m) #将时间元组转为字符串 s = time.asctime(b) print(s) #将时间戳转为字符串 即:time.asctime(time.localtime(time.time()) p = time.ctime(c) print(p) #将时间元组转成给定格式的字符串,参数2为时间元组,如果唯一参数2,默认转当前时间。 q = time.strftime('%Y-%m-%d %H:%M:%S',b) print(q) #将事件字符串转为时间元组 w = time.strptime(q,'%Y-%m-%d %X') print(w)
结果为:
1571663439.9040654
time.struct_time(tm_year=2019, tm_mon=10, tm_mday=21, tm_hour=13, tm_min=10, tm_sec=39, tm_wday=0, tm_yday=294, tm_isdst=0)
time.struct_time(tm_year=2019, tm_mon=10, tm_mday=21, tm_hour=21, tm_min=10, tm_sec=39, tm_wday=0, tm_yday=294, tm_isdst=0)
1571663439.0
Mon Oct 21 21:10:39 2019
Mon Oct 21 21:10:39 2019
2019-10-21 21:10:39
time.struct_time(tm_year=2019, tm_mon=10, tm_mday=21, tm_hour=21, tm_min=10, tm_sec=39, tm_wday=0, tm_yday=294, tm_isdst=-1)
import time #延迟一个时间,整数或者浮点数 time.sleep(4) #返回当前程序的cpu执行时间,Unix形同始终返回全部的运行时间,windows从第二次开始,都是以第一个调用此函数的开始时间戳为基数 time.clock()
datetime模块:
datetime比time高级不少,可以理解为datetime基于time进行了封装,提供了更为实用的函数,datetime模块的接口(方法)更加直观和容易调用。
模块中的类:
datetime:同时有时间和日期
timedelta:主要用于计算时间的跨度
tzinfo:时区相关
time:只关注时间
date:只关注日期
import datetime d1 = datetime.datetime.now()#获取当前时间 print(d1) print(type(d1)) d2 = datetime.datetime(2018,10,1,10,28,35,123456) print(d2) #将时间转为字符串 d3 = d1.strftime('%y-%m-%d %X') print(d3) print(type(d3)) #将格式化字符串转为datetime对象,注意转换的格式要与字符串一致 d4 = datetime.datetime.strptime(d3,'%y-%m-%d %X') print(d4)
结果为:
2019-10-21 21:38:15.930784
<class ‘datetime.datetime’>
2018-10-01 10:28:35.123456
19-10-21 21:38:15
<class ‘str’>
2019-10-21 21:39:58
import datetime d5 = datetime.datetime(1999,10,1,10,1,1,123456) d6 = datetime.datetime.now() d7 = d6-d5 print(d7) print(type(d7)) print(d7.days)#间隔的天数 print(d7.seconds)#间隔天数除外的秒数
结果为:
7325 days, 11:47:48.601579
<class ‘datetime.timedelta’>
7325
42468
日历模块:
import calendar print(calendar.month(2019,10))#返回指定某年某月的日历 print(calendar.calendar(2019))#返回指定年的日历 print(calendar.isleap(2000))#闰年返回True,否则返回Flase print(calendar.monthrange(2019,10))#返回某个月的weekday的第一天和这个月所有的天数 print(calendar.monthcalendar(2019,10))#返回某个月以每一周为元素的列表
- 点赞
- 收藏
- 分享
- 文章举报
- python学习笔记十六(递归与时间相关模块)
- python基础教程_学习笔记12:充电时刻——模块
- python 学习笔记 13 -- 经常使用的时间模块之time
- python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列
- Python学习笔记(十三):模块基础
- python学习笔记17(时间模块)
- python基础学习笔记<函数式编程与模块>
- Python基础笔记_Day09_Python模块、自定义模块、包、时间模块
- python学习笔记:time()和datetime()时间模块的基本使用和示例
- python基础学习笔记<内建模块与第三方模块>
- python 学习笔记 13 -- 常用的时间模块之time
- Python基础教程 第10章: 自带电池(模块) 学习笔记
- 学习笔记☞ python 基础(python3)【四】(函数 function,None,return,列表-2,random模块)
- python学习笔记16(递归、栈和队列)
- Python学习笔记 - 日期与时间:datetime模块
- Python学习笔记【week03day1】时间和日期模块,面向对象
- python基础教程_学习笔记12:充电时刻——模块
- python基础学习笔记<内建模块与第三方模块>
- 学习笔记☞ python 基础(python3)【五】(模块,面向对象编程-1)
- Python 学习笔记 - 时间模块