生活随笔
收集整理的這篇文章主要介紹了
数值与日期
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、數值
1. 格式化
一般形式 ‘數值:{:}’.format(a[0]) 顯示正負號 ‘分數:{:-}’.format(a[0]) #顯示正負號 顯示幾位小數 ‘數值:{:.2f}’.format(a[0]) 顯示百分比 ‘分數:{:.2%}’.format(1/5)
2.小數位處理
math.trunc() 截去小數部分
import math
a
= [ - 2.9 , - 2.4 , 2.4 , 2.9 ]
result
= map ( math
. trunc
, a
)
print ( list ( result
) )
[ - 2 , - 2 , 2 , 2 ]
math.ceil() 向上取整
import math
a
= [ - 2.9 , - 2.4 , 2.4 , 2.9 ]
result
= map ( math
. ceil
, a
)
print ( list ( result
) )
[ - 2 , - 2 , 3 , 3 ]
math.floor() 向下取整
import math
a
= [ - 2.9 , - 2.4 , 2.4 , 2.9 ]
result
= map ( math
. floor
, a
)
print ( list ( result
) )
[ - 3 , - 3 , 2 , 2 ]
round() 四舍五入
import math
a
= [ - 2.9 , - 2.4 , 2.4 , 2.9 ]
result
= map ( round , a
)
print ( list ( result
) )
[ - 3 , - 2 , 2 , 3 ]
二、隨機數
random.choice(lst)從序列 中隨機選擇一個元素 random.sample(lst,n)從序列 中隨機選擇n個元素 random.shuffle(lst) 隨機打亂一個可變序列 ,改變原序列,無返回。不支持字符串、元組等不可變序列 random.randint(a,b)#生成指定范圍內的隨機整數N。 a<=N<=b random.random()#生成隨機浮點數 [0.0, 1.0). random.getrandbits(K)# 生成2^k位數的隨機數
import random
lst
= 'abcde'
print ( lst
)
print ( random
. choice
( lst
) )
print ( random
. choice
( lst
) )
print ( random
. choice
( lst
) )
print ( random
. sample
( lst
, 3 ) )
print ( random
. shuffle
( lst
) )
print ( lst
)
abcde
e
c
e
['d', 'c', 'b']
abcde
import random
a
= 1
b
= 10
print ( random
. randint
( a
, b
) )
print ( random
. random
( ) )
print ( random
. getrandbits
( 5 ) )
10
0.45699859741584814
31
shuffle 和 permutation 的區別
三、日期時間
1. datetime模塊
date 處理日期(有年月日屬性) time 處理時間 (有時分秒屬性) datetime 處理日期與時間 (有年月日時分秒屬性)
import datetime
birth
= datetime
. date
( 2019 , 8 , 21 )
t
= datetime
. time
( 10 , 1 , 20 )
t2
= datetime
. datetime
( 2019 , 8 , 21 , 7 , 30 , 0 )
now
= datetime
. datetime
. now
( )
print ( '構造日期:' , birth
)
print ( '年:' , birth
. year
)
print ( '構造時間:' , t
)
print ( '時:' , t
. hour
)
print ( '構造日期與時間:' , t2
)
print ( '自帶的此時時間:' , now
)
構造日期: 2019-08-21
年: 2019
構造時間: 10:01:20
時: 10
構造日期與時間: 2019-08-21 07:30:00
自帶的此時時間: 2019-08-21 20:17:36.400167
2. 格式轉換
字符串轉到日期 t = datetime.datetime.strptime(s,’%Y-%m-%d’) 日期轉到字符串 s=now.strftime(’%Y-%m-%d’)
s
= '2019-8-21'
t
= datetime
. datetime
. strptime
( s
, '%Y-%m-%d' )
print ( '字符串 ' , s
)
print ( '轉后的時間 ' , t
)
now
= datetime
. datetime
. now
( )
print ( '時間 ' , now
)
s_now
= now
. strftime
( '%Y~%m~%d' )
print ( '轉后的字符串 ' , s_now
)
字符串 2019-8-21
轉后的時間 2019-08-21 00:00:00
時間 2019-08-21 20:07:52.090167
轉后的字符串 2019~08~21
占位符 %Y 四位年份 %y 二位年份 %m 二位月份 %d 二位日期 %H 二位小時 %M 二位分鐘 %S 二位秒數 %f 微秒
3. 時間差 timedelta
days seconds
t1
= datetime
. datetime
( 1919 , 1 , 1 , 7 , 30 , 0 )
t2
= datetime
. datetime
( 2019 , 8 , 21 , 7 , 30 , 30 )
diff
= t2
- t1
print ( diff
)
print ( '相減后日期' , diff
. days
)
print ( '相減后秒' , diff
. seconds
)
print ( '相減days*24+seconds' , diff
. total_seconds
( ) )
36757 days, 0:00:30
相減后日期 36757
相減后秒 30
相減days*24+seconds 3175804830.0
t1
= datetime
. date
( 2019 , 8 , 21 )
print ( '當前時間 ' , t1
)
t2
= t1
+ datetime
. timedelta
( days
= - 15 )
print ( '前移15天' , t2
)
t3
= t1
+ datetime
. timedelta
( days
= 26 )
print ( '往后26天' , t3
)
當前時間 2019-08-21
前移15天 2019-08-06
往后26天 2019-09-16
總結
以上是生活随笔 為你收集整理的数值与日期 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。