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

处理年历和月历

  1. 返回指定的某月
    import calendar

     c1 = 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
	#注意:对象释放后就不能再进行访问了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值