Python学习笔记【week03day1】时间和日期模块,面向对象
时间和日期模块,面向对象
时间和日期模块
python提供了一个time和calendar模块可以用于格式化日期和时间.时间间隔是以秒为单位的浮点小数
每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示
UTC :格林威治天文时间,世界标准时间,在中国为UTC+8
DST:夏令时是一种节约能源而人为规定的时间制度,在夏季调快一小时.
time
引入第三方库“ import time ”
1)#当前时间的时间戳,浮点数 time1 = time.time() 1522159406.3535008 2.1)#时间戳(浮点数)转换为UTC时间(格林威治天文时间**加粗样式**) gm = time.gmtime(time1) 注意:gm是元组,包含9个元素 time.struct_time(tm_year=2018, tm_mon=3, tm_mday=27, tm_hour=14, tm_min=3, tm_sec=26, tm_wday=1, tm_yday=86, tm_isdst=0) 2.2)# 时间戳转为本地时间(也是元组,包含9个元素) lt = time.localtime(time1) time.struct_time(tm_year=2018, tm_mon=3, tm_mday=27, tm_hour=22, tm_min=3, tm_sec=26, tm_wday=1, tm_yday=86, tm_isdst=0) 3)#本地时间元组转为时间戳 mt = time.mktime(lt) 1522159406.0 4.1)# 将时间戳转换为字符串(浮点 转 格式化输出的日期格式) ct = time.ctime(time1) 'Tue Mar 27 22:03:26 2018' 4.2)# 时间元组格式转为字符串(元组 转 格式化输出的日期格式) st = time.asctime(lt) 'Tue Mar 27 22:03:26 2018'
%Y 完整的年份
%m 月份(01 - 12)
%M 分钟数(00 - 59
%d 一个月中的第几天(01 - 31)
%S 秒(01 - 61)
%H 一天中的第几个小时(24小时制,00 - 23)
%X 本地相应时间 (时分秒)
%x 本地相应日期
4.3)# 将本地时间元组转为指定的格式的字符串 time1 = time.time() 时间戳,浮点 lt = time.localtime(time1) 时间戳 转 元组 strf = time.strftime("%Y-%m-%d %H:%M:%S", lt) 元组 转 字符串(自定义格式) '2018-03-27 22:03:26' 4.4) # 将指定时间格式的字符串,转为时间元组 (自定义格式字符串转元组) strp = time.strptime('2018-03-27 22:03:26','%Y-%m-%d %X') time.struct_time(tm_year=2018, tm_mon=3, tm_mday=27, tm_hour=22, tm_min=3, tm_sec=26, tm_wday=1, tm_yday=86, tm_isdst=-1) 5)#休眠 单位s time.sleep(2) 6)# 以浮点数计算的秒数返回当前cpu的时间,用来衡量不同的程序的耗时 time.clock() xxxxxx xxxxxx time.sleep(2) print(time.clock()) 注意:这里不计算休眠时间time.sleep(2) 计算运算效率:末尾直接print(time.clock())打印的是从第一次time.clock()至现在的时间
datetime
datetime比time高级了不少,可以理解为datetime基于time进行了封装,提供了更多的实用的函数
#导入datetime模块 import datetime 1.1) #获取系统当前时间 datetime.datetime.now() <class 'datetime.datetime'> 2019-06-17 19:04:16.693655 1.2) # 获取指定时间 datetime.datetime(2018, 3, 28, 21, 59, 7, 95015) 2018-03-28 22:47:11.006712 2) # 将时间转为字符串 time3 = datetime.datetime.strftime("%Y-%m-%d") '2018-03-28' 3) #时间相减,返回一个时间间隔的"对象" t1 = datetime.datetime.now() # t2 = datetime.datetime(2018, 3, 28, 22, 53, 24, 709216) t2 = datetime.datetime(2019, 6, 17, 19, 13, 24, 709216) print(t1) # 2019-06-17 19:09:45.660159 print(t2) # 2018-03-28 22:53:24.709216 #2019-06-17 19:13:24.709216 t3 = t1 - t2 print(t3) #如果大于1天:445 days, 20:16:20.950943 # 小于一天:0:01:29.416777 print(t3.days) #445 0 print(t3.seconds) #73153 89
calendar
处理年历和月历
-
返回指定的某月
import calendarc1 = calendar.month(2019, 6) print(c1)
2. 返回指定某年的日历
calendar.calendar(2019)
3. 判断某一年是否为闰年,如果是返回True,否则返回False
calendar.isleap(2018) False
4 返回在y1,y2之间闰年的总数
calendar.leapdays(2018, 2080) 15
5 返回某年某月的weekday的第一天和这个月所有的天数
c1 = calendar.monthrange(2019,6) (5, 30) index 5:表示6月1日是星期六
6 返回某个月以每一周为元素的序列
c1 = calendar.monthcalendar(2019, 5) [[0, 0, 1, 2, 3, 4, 5], [6, 7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26], [27, 28, 29, 30, 31, 0, 0]]
7 返回给定日期的日期码
c1 = calendar.weekday(2019,6,17) 0 备注:0表示周1,6表示周日
面向对象
是一种设计思想,基于万物皆对象这个哲学观点
面向过程
在生活中:
它是一种看待问题的思维方式,在思考问题的时候,着眼问题是怎样一步一步解决的,然后亲力亲为去解决问题[类似于公司里的执行者]
在程序中:
代码是从上而下顺序执行,各个模块之间的关系尽可能简单,在功能上相对独立,程序的流程在写程序的时候就已经决定.
面向对象
在生活中:
它是另一种看待问题的方式,它着眼于找到一个具有特殊功能的个体,然后委托这个个体去帮你完成某件事.这是更符合人类思考习惯的思想[指挥者]
在程序中:
把数据以及对数据的操作方法放在一起,作为一个相互依存的整体–对象
把同类的对象进行抽象出其共性,形成类
类中大多数数据,只能用本类的方法进行处理
类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信
程序执行的流程由用户在使用的过程中决定
使用面向对象进行开发,需要先找到具有所需功能更的对象来使用,如果这个对象不存在,那么则需要创建这么一个具有所需功能的对象
注意:面向对象只是一种思想,并不是一门编程语言.
区别总结
a. 都是看待问题的一种思维方式,都能解决问题
b. 面向过程着眼于所有的事情亲力亲为
c. 面向对象着眼于找到一个具有特殊功能的对象,委托这个对象实现你需要实现的功能.
python语言是面向对象的程序设计语言,类和对象是面向对象的核心
例子
class Person(): #自定义函数方法 def run(self): print("run") def eat(self, food): print("eat "+food) #构造函数 def __init__(self, name, age, height, weight): self.name = name self.age = age self.height = height self.weight = weight #析构函数 def __del__(self): print("这里是析构函数") #看作是函数入口 if __name__ == '__main__': #实例化对象 per = Person("hanmeimei", 20, 170, 55) #释放对象 del per #注意:对象释放后就不能再进行访问了
- 初学Python的学习笔记7----偏函数、模块、重点是面向对象
- Python 日期时间处理模块学习笔记
- Python学习笔记 - 日期与时间:datetime模块
- python 学习笔记--面向对象
- python学习笔记(七) - 面向对象高级编程
- python学习笔记六之初识面向对象上(基础篇)
- python学习笔记分享(二十五)python学习笔记分期补充(三)变量,对象,参数,输入和输出,file对象和os模块
- python学习笔记六之面向对象相关下(基础篇)
- Python3 高级功能学习笔记(面向对象和正则表达式)
- Python学习笔记 - 面向对象高级编程
- python学习笔记6(面向对象基础)
- 【python学习笔记】python中的模块,类,函数,对象,实例(与JAVA的比较)
- 廖雪峰python学习笔记8:面向对象初步
- 廖雪峰python学习笔记9:面向对象高级
- Python 学习笔记 - 时间模块
- Python模块学习 ---- time 日期时间处理
- Python学习笔记9:标准库之日期时间(time包,datetime包)
- Python学习笔记-Turtle库简单实例之日期时间显示
- Python学习笔记(五)——日期和时间
- Python学习笔记(四)面向对象高级编程