時期和時間
內置的datatime模塊提供了datatime、date以及time等類型,其中datetime用的是最多的,它合併保存了date and time中的信息
from datetime import datetime, date, time
dt=datetime(2016,9,12,8,53,40)
dt.date()
datetime.date(2016, 9, 12)
dt.time()
datetime.time(8, 53, 40)
dt.day
12
dt.minute
53
- strftime方法用於將datetime格式化爲字符串
- strptime是將字符串轉化爲datetime對象
dt.strftime('%m/%d/%y %H:%M')
'09/12/16 08:53'
datetime.strptime('20091212','%Y%m%d')
datetime.datetime(2009, 12, 12, 0, 0)
#作時間序列分析時進行聚合或分組時,可能需要替換datetime中的一些字段
dt.replace(minute=0,second=0)
datetime.datetime(2016, 9, 12, 8, 0)
#另外datetime對象可以相減,得出一個datetime.timedelta類型:
dt2=datetime(2016,1,1,12,12)
delta=dt-dt2
delta
datetime.timedelta(254, 74500)
type(delta)
datetime.timedelta
#可以相減,自然也可以把delta加到一個datetime上
dt3=datetime(2011,12,11,12,1) #精確到秒
dt4=dt3+delta
dt4
datetime.datetime(2012, 8, 22, 8, 42, 40)
print dt3+delta
2012-08-22 08:42:40
循環中的continue、break、pass
- continue關鍵字用於使FOR循環提前進入下一次迭代,即跳過continue後代碼塊的剩餘部分
- break是用於完全退出當層循環
- pass是可以理解爲空的代碼佔位符,多被用於還沒有任何功能的代碼塊中
#continue的例子,下面代碼是跳過None值的部分:
sequence=[1,2,None,1,3,None,39]
total=0
for value in sequence:
if value is None:
continue
total+=value #注意這句的位置,是不可以在IF中的,因爲if裏只有None纔會執行
print total
46
#break,下面的例子,列表求和,碰到5就退出
sequence=[1,2,3,4,5]
total=0
for value in sequence:
if value==5:
break
total+=value
print total
10
#pass
x=22
if x<0:
print 'negative'
elif x==0:
#實現什麼功能?還沒有想好
pass
else:
print 'positive'
positive