time模块
时间表示方式
struct_time元组
time模块方法
### time模块
#### 时间表示方式
- 时间戳:表示的是从1970年1月1日00:00:00开始按秒计算的偏移量
- UTC时间:世界协调时
- struct_time:九元组时间(年,月,日,时,分,秒,一周中的第几天,一年中的第几天,是否使用DST夏季节约时间)
```python
>>> import time
>>> time.time() # 当前时间的时间戳
1587432752.0444653
>>> time.ctime() # 当前UTC时间的字符串形式
'Tue Apr 21 09:33:08 2020'
>>> t = time.localtime() # 当前时间的九元组时间
>>> t
time.struct_time(tm_year=2020, tm_mon=4, tm_mday=21, tm_hour=9, tm_min=34, tm_sec=29, tm_wday=1, tm_yday=112, tm_isdst=0)
>>> t.tm_yday # 今天是一年中的第几天
112
>>> t.tm_wday # 今天是一周中的第几天,0表示周一
1
>>> time.sleep(3)
# 将当前时间转成指定的字符串
>>> time.strftime('%Y-%m-%d %a %A %H:%M:%S')
'2020-04-21 Tue Tuesday 09:52:19'
# 将时间字符串转换成9元组时间
>>> t1 = time.strptime('2021-5-1 9:20:30', '%Y-%m-%d %H:%M:%S')
>>> t1
time.struct_time(tm_year=2021, tm_mon=5, tm_mday=1, tm_hour=9, tm_min=20, tm_sec=30, tm_wday=5, tm_yday=121, tm_isdst=-1)
>>> t2 = time.strptime('2020-5-1 9:20:30', '%Y-%m-%d %H:%M:%S')
>>> t1 > t2
True
```
时间样式
datetime模块
时间计算
```python
>>> from datetime import datetime
>>> t = datetime.now()
>>> t # 返回当前时间的(年,月,日,时,分,秒,毫秒)
datetime.datetime(2020, 4, 21, 10, 41, 23, 617507)
>>> t.year, t.month, t.day
(2020, 4, 21)
>>> t.hour, t.minute, t.second, t.microsecond
(10, 41, 23, 617507)
# 将datetime对象转成指定字符串
>>> t.strftime('%Y/%m/%d')
'2020/04/21'
# 将字符串转为datetime对象
>>> datetime.strptime('2020-4-21 10:50:00', '%Y-%m-%d %H:%M:%S')
# 计算时间差额
>>> from datetime import datetime, timedelta
>>> days = timedelta(days=100, hours=1)
>>> t = datetime.now()
>>> t
datetime.datetime(2020, 4, 21, 10, 52, 50, 982365)
>>> t - days # 100天1小时之前的时间
datetime.datetime(2020, 1, 12, 9, 52, 50, 982365)
>>> t + days # 100天1小时之后的时间
datetime.datetime(2020, 7, 30, 11, 52, 50, 982365)
什么是异常
python中的异常
try-except语句
多个expect的try语句
异常参数
- 当程序运行时,因为各种各样的原因出错了,那么它将崩溃,终止执行,在屏幕上抛出异常
- 异常处理就是在代码中提前给出错误解决方案。当程序遇到问题时,要执行哪些代码进行补救
- 异常捕获语法
```python
try:
有可能发生异常的语句块
except 异常1:
异常1发生时,执行的语句块
except (异常2, 异常3):
异常2或异常3发生时,执行的语句块
except (异常4, 异常5) as e: # 将异常保存到变量e中
异常4或异常5发生时,执行的语句块
else:
异常不发生才执行的语句块
finally:
不管异常是否发生,都要执行的语句块
```
def get_info(name, age):
if not 0 < age < 120:
raise ValueError('年龄超过范围(1~119)')
print('%s is %s years old' % (name, age))
if __name__ == '__main__':
get_info('牛老师', 20)
案例
else字句
finally子句
触发异常
raise语句
断言
def get_info(name, age):
if not 0 < age < 120:
raise ValueError('%s??fuckyou'%age) #raise语句
print('%s teacher is %s year old' % (name, age))
def get_info2(name,age):
assert 0<age<120,'%s? Are you kidding me'%age #assert断言
if __name__ == '__main__':
get_info('niuben', 130)
get_info2('niuben',123)
案例
os模块简介
os模块方法
案例
pickle模块
pickle模块方法
案例