Python3中數字 日期以及時間

2021-08-20 00:07:04 字數 4531 閱讀 2351

1、取整操作---round(value,ndigits)函式

round(3.14,1)

3.1round(2.28,1)

2.3round(3.1415926,3)

3.142

當某個值恰好等於兩個整數之間的一半時,取整操作會取到離該值最接近的那個偶數上。(針對python3,python2並非如此)

python3:

round(3.5)

4round(4.5)

4

python2:

round(3.5)

4.0round(4.5)

5.0

py2和py3輸出結果的型別也有所不同,乙個輸出int,乙個輸出float。

引數ndigits也可以是負數,這種情況下會相應的取整到十位、百位、千位等。

round(1234567,-1)

1234570

round(1234567,-2)

1234600

2、對數值格式化輸出

format(3.1415926,'0.2f')

'3.14'

format(1234.56789,'>10.1f')

' 1234.6'

format(1234.56789,'^10.1f')

' 1234.6 '

其中^、<、>分別是居中、左對齊、右對齊,後面跟的數字表示寬度

format(4425.3861,',')

'4,425.3861'

format(4425.3861,',.1f')

'4,425.4'

','表示對整數部分每三位數字進行分割

format(415.3861,'e')
'e'表示用科學計數法顯示。

3、random模組

random.chioce()---從序列中隨機選出元素

import random

li=[1,3,5,7,2,4,6,8]

random.choice(li)

out[3]: 5

random.choice(li)

out[4]: 5

random.choice(li)

out[5]: 6

random.choice(li)

out[6]: 2

random.choice(li)

out[7]: 3

random.choice(li)

out[8]: 4

random.choice(li)

out[9]: 6

random.choice(li)

out[10]: 8

選出n個元素

random.sample(li,3)

out[11]: [4, 2, 6]

random.sample(li,4)

out[12]: [4, 6, 3, 5]

random.sample(li,5)

out[13]: [2, 3, 7, 6, 8]

a=[1,2,3,4]

random.shuffle(a)

aout[16]: [4, 1, 3, 2]

如果在原序列中原地打亂元素的順序(洗牌),可以使用random.shuffle()

a=[1,2,3,4]

random.shuffle(a)

aout[16]: [4, 1, 3, 2]

random.randint()----產生隨機整數

random.randint(1,8)

out[30]: 2

in [31]: random.randint(1,8)

out[31]: 4

in [32]: random.randint(1,8)

out[32]: 7

in [33]: random.randint(1,8)

out[33]: 1

in [34]: random.randint(1,8)

out[34]: 2

in [35]: random.randint(1,8)

out[35]: 3

random.random()---產生0到1之間均勻分布的浮點數值

in [37]: random.random()

out[37]: 0.6197353765835416

in [38]: random.random()

out[38]: 0.35377782988497564

in [39]: random.random()

out[39]: 0.5645677476085343

random.uniform()---產生均勻分布值

4、日期時間

datetime模組完成不同時間單位的換算。

in [42]: from datetime import timedelta

in [43]: a=timedelta(days=3,hours=8)

in [44]: b=timedelta(hours=2)

in [45]: c=a+b

in [46]: c.days

out[46]: 3

in [47]: c.seconds

out[47]: 36000

in [48]: c.seconds/3600

out[48]: 10.0

in [49]: c.total_seconds()

out[49]: 295200.0

in [50]: c.total_seconds()/3600

out[50]: 82.0

in [51]: from datetime import datetime

in [52]: a=datetime(2018,5,16)

in [53]: a

out[53]: datetime.datetime(2018, 5, 16, 0, 0)

in [54]: print(a+timedelta(days=10))

2018-05-26 00:00:00

in [55]: b=datetime(2018,6,12)

in [56]: d=b-a

in [57]: d.days

out[57]: 27

in [58]: now=datetime.today()

in [59]: print(now)

2018-05-16 10:04:35.613223

in [60]: print(now+timedelta(minutes=20))

2018-05-16 10:24:35.613223

in [61]: from dateutil.relativedelta import relativedelta

in [62]: a=datetime(2018,2,8)

in [63]: a+relativedelta(months=+1)

out[63]: datetime.datetime(2018, 3, 8, 0, 0)

in [64]: a+relativedelta(months=+15)

out[64]: datetime.datetime(2019, 5, 8, 0, 0)

in [65]: b=datetime(2018,5,1)

in [66]: d=b-a

in [67]: d

out[67]: datetime.timedelta(82)

in [68]: print(d)

82 days, 0:00:00

in [69]: relativedelta(b,a)

out[69]: relativedelta(months=+2, days=+23)

in [70]: relativedelta(b,a).months

out[70]: 2

in [71]: relativedelta(b,a).days

out[71]: 23

5、將字串轉換為日期

str_datetime='2018-5-8'

in [87]: res=datetime.strptime(str_datetime,'%y-%m-%d')

in [88]: now=datetime.now()

in [89]: dif=now-res

in [90]: dif

out[90]: datetime.timedelta(8, 47661, 159201)

參考:

1、python cookbook中文版

python3基礎 05 數字

ceil x 返回數字的上入整數,如math.ceil 4.1 返回 5 cmp x,y 如果 x y 返回 1,如果 x y 返回 0,如果 x y 返回 1。python 3 已廢棄 使用 使用 x y x替換。python3中已經不能使用cmp 函式了,被如下五個函式替代 import ope...

python3學習 數字型別

在賦值時被建立 del語句可以刪除一些數字物件的引用 也可刪除多個物件引用 共三種數值型別 int 無大小限制,可以當做long使用 float 整數和小數組成,可以用科學技術法 2.5e2 2.5 x 10 x 10 250 複數 a bj complex a,b 數字型別相互轉換 int x f...

python3之數字 python的數字型別

python3之數字 python的數字型別 在python中,數字並不是乙個真正的物件型別,而是一組類似型別的分類。python不僅支援通常的數字型別 整數和浮點數 而且能夠通過常量直接建立數字以及處理數字表示式。此外,python為更高階的工作提供了很多高階數字程式設計支援和物件。python數...