python進階(2)python最常用的模組

math

  • math.ceil(a): 用來返回≥a的最小整數
  • math.floor(a):用來返回≤a的最大整數
     

round(a [,b])

  • 如果沒有參數b,只有a,round()作用是四捨五入
  • 如果有參數b,round()作用是對a保留b位小數
print(round(100.1234))  # 四捨五入為100
print(round(100.1234, 2))  # 對100.1234保留2位小數,結果100.12
>>> 100
>>> 100.12

 

random

  • random.random():返回在範圍大於或等於0.0,且小於1.0內的隨機浮點數
  • random.randrange(stop): 返回在範圍大於或等於0,且小於stop內,步長為1的隨機整數
  • random.randrange(start, stop[, step]): 返回在範圍大於或等於start,且小於stop內,步長為step的隨機整數
  • random.randint(a, b): 返回在範圍大於或等於a,且小於或等於b之間的隨機整數
     

datatime

Python官方提供的日期和時間模組主要有time和datetime模組。time偏重於底層平台,模組中大多數函數會調用本地平台上的C鏈接庫,因此有些函數運行的結果,在不同的平台上會有所不同。datetime模組對time模組進行了封裝,提供了高級API
datetime模組的核心類是datetime、date、time類
 

datetime類

一個datetime對象可以表示日期和時間等資訊,創建datetime對象可以使用如下構造方法:

datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None)

其中year、month、day是不可以省略的;tzinfo是時區參數,默認值是None,表示不指定時區;除了tzinfo外,其他的參數全部為合理範圍的整數,具體取值範圍就跟生活中的時間一樣,比如1月沒有32號,這裡說明一下microsecond的取值範圍為:0≤microsecond<1000000
datetime類提供了一下方法

  • datetime.today(): 返回當前本地日期和時間
  • datetime.now(tz=None): 返回本地當前的日期和時間,如果參數tz=None或未指定,則等同於today()
  • datetime.utcnow(): 返回當前UTC日期和時間
  • datetime.fromtimestamp(timestamp, tz=None): 返回與UNIX時間戳對應的本地日期和時間
  • Datetime.utcfromtimestamp(timestamp): 返回與UNIX時間戳對應的UTC日期和時間
import time
from datetime import datetime

# timestamp轉datetmine
timestamp = time.time()
print(timestamp)
dt = datetime.fromtimestamp(timestamp)
print(dt)dt = datetime.now()
>>> 1609041543.103592
>>> 2020-12-27 11:59:03.103592

# datetime轉timestamp
dt = datetime.now()
print(dt)
timestamp = datetime.timestamp(dt)
print(timestamp)
>>> 2020-12-27 11:57:22.330620
>>> 1609041442.33062

注意:在Python語言中時間戳單位是”秒”,所以它會有小數部分。而其他語言如Java單位是”毫秒”,當跨平台計算時間需要注意這個差別
 

實戰例子

# 需求:將python生成的時間戳轉換為java的格式來匹配你們公司的java後端
timestamp = str(int(round(time.time(), 3) * 1000))  # 一行程式碼輕鬆解決
」「」
解析過程:1.執行time.time()獲取當前時間戳
               2.執行round(time.time(), 3)python默認是保留6位小數,這裡保留3位小數,因為python時間戳單位是秒,java是毫秒,
               3.將第2步得到的結果int(),確保是int類型,再乘以1000,將時間戳單位轉換為毫秒
               4.最後用str(),確保timestamp的類型是字元串類型
「」「

 

date類

  • date.today(): 返回當前本地日期
  • date.fromtimestamp(timestamp): 返回與UNIX時間戳對應的本地日期
     

time類

datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None)

 

日期時間格式化

  • str轉換為datetime
    很多時候,用戶輸入的日期和時間是字元串,要處理日期和時間,首先必須把str轉換為datetime。轉換方法是通過datetime.strptime()實現,需要一個日期和時間的格式化字元串:
from datetime import datetime
t = datetime.strptime('2018-4-1 00:00','%Y-%m-%d %H:%M')
print(t)
>>> 2018-04-01 00:00:00

 

  • datetime轉換為str
    如果已經有了datetime對象,要把它格式化為字元串顯示給用戶,就需要轉換為str,轉換方法是通過strftime()實現的,同樣需要一個日期和時間的格式化字元串:
from datetime import datetime
now = datetime.now()
print(now.strftime('%a, %b %d %H:%M'))
>>> Mon, May 05 16:28