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數...