1. 程式人生 > >Python3中數字、日期以及時間

Python3中數字、日期以及時間

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

round(3.14,1)
3.1
round(2.28,1)
2.3
round(3.1415926,3)
3.142

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

python3:

round(3.5)
4
round(4.5)
4

python2:

round(3.5)
4.0
round(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)

a
Out[16]: [4, 1, 3, 2]

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

a=[1,2,3,4]

random.shuffle(a)

a
Out[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數字日期以及時間

1、取整操作---round(value,ndigits)函式round(3.14,1) 3.1 round(2.28,1) 2.3 round(3.1415926,3) 3.142當某個值恰好等於兩個整數之間的一半時,取整操作會取到離該值最接近的那個偶數上。(針對pytho

python3數字日期時間

1、對數值進行取整 #使用內建的round(value,ndigits)函式來取整,ndigits指定保留的位數,在取整時會取值在偶數上,如1.25取一位會取整1.2,1.26會取整1.3 In [1]: round(1.23,1) Out[1]: 1.2 In [2]: round(1.2

python+pandas+時間日期以及時間序列處理

先簡單的瞭解下日期和時間資料型別及工具 python標準庫包含於日期(date)和時間(time)資料的資料型別,datetime、time以及calendar模組會被經常用到。 datetime以毫秒形式儲存日期和時間,datetime.timedelta

MyEclipse設定JSP頁面預設編碼方式以及設定在Java檔案作者日期等操作說明

MyEclipse設定JSP頁面預設編碼方式: windows(視窗)-Preferences(首選項)-MyEclipse-Files & Editors-JSP-右側encoding:設定

Python3-datetime模塊-日期時間

form pri nal pytho oda min b- date() 模塊 官方文檔   http://python.usyiyi.cn/translate/python_352/library/datetime.html 代碼示例 from datetime im

python 有關日期 以及時間戳轉換

nds Coding 代碼 timedelta 格式化輸出 時間 spa date del 直接上代碼 其中有註釋 #coding=utf-8 import time import datetime def yes_time(): #獲取當前時間 n

在Java 8如何處理日期時間

工廠方法 相同 例如 屬性。 ant arch java 去掉 靜態常量 常有人問我學習一個新庫的最好方式是什麽?我的答案是在實際項目中使用它。項目中有很多真正的需求驅使開發者去發掘並學習新庫。簡單得說就是任務驅動學習探 索。這對Java 8新日期時間API也不例外。我創建

20 個案例教你在 Java 8 如何處理日期時間?

靜態方法 catch 完全 是把 AD 時間 如何判斷 before .com 前言 前面一篇文章寫了《SimpleDateFormat 如何安全的使用?》, 裏面介紹了 SimpleDateFormat 如何處理日期/時間,以及如何保證線程安全,及其介紹了在 Java

Linux C 獲取local日期時間 time()&localtime()函數

運行 clas fine stdlib.h erro 分享圖片 mda else str 1. time() 函數 /* time - 獲取計算機系統當前的日歷時間(Calender Time) * 處理日期時間的函數都是以本函數的返回值為基礎進行運

Layui彈出層日期時間選擇即時通訊分頁

怎樣 其中 日期時間 hub scrip 即時通 http 邏輯 asc Layui彈出層、日期和時間選擇、即時通訊、分頁 彈層組件文檔 - layui.layer 對於彈出層的感覺是:layer 至今仍作為 layui 的代表作,她的受眾廣泛並非偶然,而是這數年來的堅持、

JslocalStoragesessionStorage以及Cookie介紹

---恢復內容開始---基本概念 Cookie Cookie 是小甜餅的意思。顧名思義,cookie 確實非常小,它的大小限制為4KB左右。它的主要用途有儲存登入資訊,比如你登入某個網站市場可以看到“記住密碼”,這通常就是通過在 Cookie 中存入一段辨別使用者身份的資料來實現的。 localStorage

(轉載)對比MySQLintchar 以及 varchar 的效能

轉載:https://www.jb51.net/article/148819.htm 網路上有許多似是而非的“謠言”,當然都不是惡意,絕大部分都是開發者不願意自己主動研究,反而輕信其他人的信口之言。 關於資料庫的謠言也有不少,比如“int效能比char高很多”。 我最近針對int

python 有關datetime時間日期 以及時間戳轉換

#coding=utf-8 import time import datetime def yes_time(): #獲取當前時間 now_time = datetime.datetime.now() #當前時間減去一天 獲得昨天當前時間 yes_time = no

使用python2與python3md5的區別以及需要注意的地方

你可能不知道的是,有很多字元,使用python2和python3的md5加密出來的結果是不一樣的     # python2.7 zfc = "xxx" + chr(163) + "fj" cd = hashlib.md5(zfc).h

給出字串分別計算出字串數字大小寫字母的個數。(兩種方法 getBytes( ) charAt( ) )

public class LetterAndNumberCount { public static void main(String[] args) { Count("FJJgjsgfsd543632"); count1("SFsefgdg2354354fsdf"

Linux C 獲取local日期時間 time()&localtime()函式

1.  time() 函式 /* time - 獲取計算機系統當前的日曆時間(Calender Time) * 處理日期時間的函式都是以本函式的返回值為基礎進行運算 * 函式原型: * #include <time.h>

MATLAB gcfgca 以及gco 的區別

gcf 返回當前Figure 物件的控制代碼值 gca 返回當前axes 物件的控制代碼值gco 返回當前滑鼠單擊的控制代碼值,該物件可以是除root 物件外的任意圖形物件,並且Matlab 會把當前圖形物件的控制代碼值存放在Figure CurrentObject屬性中。 圖形

javascriptprototypeconstructor以及__proto__之間的三角關係

三者曖昧關係簡單整理   在javascript中,prototype、constructor以及__proto__之間有著“著名”的剪不斷理還亂的三角關係,樓主就著自己對它們的淺顯認識,來粗略地理理以備忘,有不對之處還望斧正。   樓主的一句話理解就是:某個物件的c

JavaPrintWriterBufferedWriter以及BufferredReader基本使用詳解

PrintWriter的使用 PrintWriter:是具有自動行重新整理的緩衝字元輸出流,這是一個高階流。所謂的自動行重新整理,意思就是說:在建構函式中指定autoFlush的值為true時,則 println()、printf() 或 format(

python__getitem__()__setitem__()以及__delitem__()方法

這個方法查過很多遍了都沒記住,現在特地寫出來,以防自己忘記。 getitem 專用方法很簡單。像普通的方法 clear,keys 和 values 一樣,它只是重定向到字典,返回字典的值。與之對應的是__setitem__()方法,把物件視作list或dict來對集合賦值。最後,還有一個