oeasy教您玩轉(zhuǎn)python - 011 - # 輸出時間
輸出時間
回憶上次內(nèi)容
print
函數(shù)意味著輸出后不自動換行
同時不輸出任何結(jié)束符
我可以手動在輸出字符串的末尾加上換行符(
\n
)end參數(shù)
?的默認(rèn)值是?\n
end
?的值可以是任意字符串end
?的值會輸出到結(jié)尾位置有個默認(rèn)的參數(shù)?
end
如果
end
是空串(end=""
)這樣的話
我不但可以輸出結(jié)尾換不換行
還能控制具體在哪里換行
我想輸出點別的,比如說當(dāng)前時間???
搜索信息

百度
python3 輸出時間
抄寫代碼

#
號 后面的都是注釋可以忽略的
第一句是
import time
import 是嘛意思來著?
搜索一下
先進 help()幫助模式
然后搜索 import

查找?guī)椭?/h1>

在 python3 解釋器環(huán)境查找?guī)椭?/p>
import 是導(dǎo)入一個 module 模塊包
port是港口
import 原意是導(dǎo)入、進口
export 是導(dǎo)出、出口
感覺和航海歷史有關(guān)
導(dǎo)入的東西是模塊(modules)
那什么又是模塊(modules)
modules 是啥?
time 是一個模塊(module)的名稱
我們可以
help()進入幫助模式
在幫助模式下輸入 modules

modules
查看所有的 modules

python 之所以強大就是因為各種 模塊(modules) 好用
各種模塊有統(tǒng)一的統(tǒng)一的包管理器
直接import就可以調(diào)用庫的接口
所有dirty的東西都被藏在了背后
啥都不用想
直接按照例程打上
一運行就跑起來了
比如我們這次要用到的 time.time()
確實可以在modules找到
如下圖

這個time怎么用呢?
啥是 time
import
?就是導(dǎo)入time
?就是導(dǎo)入的?module
?的名字導(dǎo)入了的
module
才能用不導(dǎo)入的
module
不能用

time包導(dǎo)進來了
如何調(diào)用函數(shù)方法呢?
函數(shù)調(diào)用
time.time()
就是調(diào)用
time
這個module
里面的time()
這個函數(shù)方法可以輸出當(dāng)前時間
前提是導(dǎo)入了time這個包
導(dǎo)入了
time
這個module
之后才可以使用
time.time()
這個方法得到時間戳

為什么以前我們用的?
print()
?這個函數(shù)方法啥?
module
?都不用導(dǎo)入直接就能用呢?
內(nèi)置函數(shù)

第一句就明確了
built-ins么?!
print 是 builtins 這個包(module) 的 function(內(nèi)置函數(shù))
builtins 這個包(module) 本來就是內(nèi)置的包
內(nèi)置就是本來就擱在里面了
什么都不用導(dǎo)入就能用的里面的函數(shù)
我們已經(jīng)學(xué)過哪些內(nèi)置函數(shù)了呢?
不要翻頁,全都自己列出來
內(nèi)置函數(shù)列表
help()
int()
chr()
bin()
hex()
ord()
print()
這些都是內(nèi)置的函數(shù)
不需要
import
任何?包(module)
直接就能用的
好像還遺漏了一個函數(shù),是哪個?
time 怎么用
我們先查詢官方幫助
沒有發(fā)現(xiàn)可行的例子

我們回過頭去網(wǎng)頁找例程
就在例程基礎(chǔ)上照貓畫虎
照貓畫虎

#引入一個包叫time
import time
#得到當(dāng)前時間的asctime形式字符串
ascii_time = time.asctime(time.localtime(time.time()))
#進行輸出
print ("本地時間為 :", ascii_time)

這個語句有點復(fù)雜
一點點打,別打錯了
這是很好的最初鍛煉
也是鍛煉自信的方法
也可以復(fù)制到剪貼板,粘貼過去
這是墮落的開始
最初的省事兒
會讓你感到失控
不像自己一個個打出來的那么踏實
錯誤也是一種鍛煉
都熟悉之后再復(fù)制粘貼
不要上來就圖省事兒
嵌套的函數(shù)
這個一大串東西是有規(guī)律的
首先什么是 time

time 是一個 module 模塊包
time.time()
time.localtime()
time.asctime()
處理時間的包
包里有各種函數(shù)
例子是一行寫成的
使用了函數(shù)嵌套調(diào)用
我們試試把函數(shù)嵌套調(diào)用拆開
不用嵌套
分開寫
分開寫

函數(shù)嵌套調(diào)用
首先通過調(diào)用 time.time()函數(shù) 得到了ticks
然后通過調(diào)用 localtime(ticks)函數(shù) 得到了localtime
最后通過調(diào)用 asctime(localtime) 得到了asctime

那么這些函數(shù)
time
localtime
asctime
都是什么意思
分別help一下
time.time()
help(time.time)

這里有兩個time有點亂
我們區(qū)分一下顏色
前面的是紅色的 time
后面的是綠色的 time()
time.time()
引入 time 這個包
從time 包里調(diào)用 time() 這個函數(shù)
圓括號說明 time() 是函數(shù)
這個 time() 函數(shù) 就是 time 包里面的函數(shù)
那么這個time.time()到底返回什么值呢?
調(diào)用一下看看

這一串長長的數(shù)字應(yīng)該如何理解
time.time()的意義
我們還是得返回來看幫助文件

這個東西返回的是一個浮點型的數(shù)字
是從Epoch到當(dāng)前的時間總共過了多少秒
那什么又是Epoch呢?

Epoch
發(fā)音是[?ep?k]
Epoch 的意思是紀(jì)年方法或者說是年號
比如今年按照日本紀(jì)年法是令和四年
公元1587年是明朝萬歷十五年
那python中的Epoch年號又是什么年號呢?
unix紀(jì)年法(unix時間戳)
seconds since the Epoch
從1970年1月1日開始的
也就是1970-01-01T00:00:00Z
格林威治時間 1970 年 1 月 1 日 00:00:00
每過一秒這個數(shù)字就加1
每過半秒這個數(shù)字就加0.5
所以Epoch也叫做
為什么是1970-01-01呢?
第一版unix的正式發(fā)布是在1971年
編寫c和unix工作是從1969年開始實施的
大概率是
Kenneth Thompson
和Dennis Ritchie
在1970年初一拍腦門定下來了這個起始時間點
最關(guān)鍵的是
這個關(guān)于秒數(shù)的數(shù)據(jù)類型time_t也已然在后來成了標(biāo)準(zhǔn)c庫的一部分
因此被廣泛運用在各種 類unix(Unix-like)的軟件系統(tǒng)中
比如我們用到的這個debian的變種ubuntu
所以 Epoch 也叫做
Unix Time
Posix Time
UNIX Epoch Time
time.time()得到的是一個浮點數(shù)
但是我們要的是年份、月份、日期、時分秒這些具體的信息
考慮到從閏年到閏秒的一系列難題
這個轉(zhuǎn)化太麻煩了
有什么辦法么?
time.localtime()
time.time()出來的浮點秒數(shù)交給 time.localtime()處理
年份、月份、日期、時分秒這些具體的信息
time 還是包名
這次的函數(shù)名變成了 localtime()
輸入是unix時間戳
輸出本地時間元組
如果localtime函數(shù)的參數(shù)缺省
默認(rèn)使用time.time()作為參數(shù)
對的
time.time()就是當(dāng)前時間的unix時間戳
time.asctime()
time.asctime 函數(shù)
輸入為time.localtime()輸出的時間元組作為
輸出為一個字符串
asctime函數(shù) 接收時間元組產(chǎn)生 ascii 字符串
ascii 就是 ascii編碼
asctime 就是 用ascii方式顯示的 time
如果asctime函數(shù)的參數(shù)缺省
默認(rèn)使用time.localtime()作為參數(shù)
對的
time.localtime()就是當(dāng)前時間的時間元組
最后輸出
我們都使用默認(rèn)參數(shù)
把函數(shù)嵌套大大簡化了
把最后的結(jié)果交給 print()
最終就能得到當(dāng)前的時間!??
我可以讓時間刷新么?
手動延遲
我想要刷新這個東西怎么辦?
需要重新得到?
asc_time
然后重新輸出?
asc_time
這個過程可以手動來完成
我想讓他自動刷新起來
先去編寫一個py程序
編寫程序
運行結(jié)果
總結(jié)
通過搜索
我們學(xué)會?
import
?導(dǎo)入?time
?了time 是一個?
module
得到時間日期字符串
asc為ascii
得到本地時間元組
local為本地
得到當(dāng)前時間戳
import 他可以做和時間相關(guān)的事情
time.time()
time.localtime()
time.asctime()
完整寫法為
asc_time = time.asctime( time.localtime( time.time()))
可以簡寫為
time.asctime()
asctime 是 time 這個 module 里面的函數(shù)
是外部函數(shù)
內(nèi)部函數(shù)是系統(tǒng)自帶的
比如 quit()
現(xiàn)在想要自動刷新時間,怎么辦???
我們下次再說!*