天天看點

python類型和庫彙總Python 數字Python 字元串Python 字典(Dictionary) Python 日期和時間

Python 數字

Python 支援四種不同的數值類型:

  • 整型(Int) - 通常被稱為是整型或整數,是正或負整數,不帶小數點。
  • 長整型(long integers) - 無限大小的整數,整數最後是一個大寫或小寫的L。
  • 浮點型(floating point real values) - 浮點型由整數部分與小數部分組成,浮點型也可以使用科學計數法表示(2.5e2 = 2.5 x 102 = 250)
  • 複數( (complex numbers)) - 複數的虛部以字母J 或 j結尾 。如:2+3i
int long float complex
10 51924361L 0.0 3.14j
100 -0x19323L 15.20 45.j
-786 0122L -21.9 9.322e-36j
080 0xDEFABCECBDAECBFBAEl 32.3+e18 .876j
-0490 535633629843L -90. -.6545+0J
-0x260 -052318172735L -32.54e100 3e+26J
0x69 -4721885298529L 70.2-E12 4.53e-7j
  • 長整型也可以使用小寫"L",但是還是建議您使用大寫"L",避免與數字"1"混淆。Python使用"L"來顯示長整型。
  • Python還支援複數,複數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示, 複數的實部a和虛部b都是浮點型

Python數字類型轉換

int(x [,base ])         将x轉換為一個整數  
long(x [,base ])        将x轉換為一個長整數  
float(x )               将x轉換到一個浮點數  
complex(real [,imag ])  建立一個複數  
str(x )                 将對象 x 轉換為字元串  
repr(x )                将對象 x 轉換為表達式字元串  
eval(str )              用來計算在字元串中的有效Python表達式,并傳回一個對象  
tuple(s )               将序列 s 轉換為一個元組  
list(s )                将序列 s 轉換為一個清單  
chr(x )                 将一個整數轉換為一個字元  
unichr(x )              将一個整數轉換為Unicode字元  
ord(x )                 将一個字元轉換為它的整數值  
hex(x )                 将一個整數轉換為一個十六進制字元串  
oct(x )                 将一個整數轉換為一個八進制字元串  
      

Python數學函數

函數 傳回值 ( 描述 )
abs(x) 傳回數字的絕對值,如abs(-10) 傳回 10
ceil(x) 傳回數字的上入整數,如math.ceil(4.1) 傳回 5
cmp(x, y) 如果 x < y 傳回 -1, 如果 x == y 傳回 0, 如果 x > y 傳回 1
exp(x) 傳回e的x次幂(ex),如math.exp(1) 傳回2.718281828459045
fabs(x) 傳回數字的絕對值,如math.fabs(-10) 傳回10.0
floor(x) 傳回數字的下舍整數,如math.floor(4.9)傳回 4
log(x) 如math.log(math.e)傳回1.0,math.log(100,10)傳回2.0
log10(x) 傳回以10為基數的x的對數,如math.log10(100)傳回 2.0
max(x1, x2,...) 傳回給定參數的最大值,參數可以為序列。
min(x1, x2,...) 傳回給定參數的最小值,參數可以為序列。
modf(x) 傳回x的整數部分與小數部分,兩部分的數值符号與x相同,整數部分以浮點型表示。
pow(x, y) x**y 運算後的值。
round(x [,n]) 傳回浮點數x的四舍五入值,如給出n值,則代表舍入到小數點後的位數。
sqrt(x) 傳回數字x的平方根,數字可以為負數,傳回類型為實數,如math.sqrt(4)傳回 2+0j

Python随機數函數

随機數可以用于數學,遊戲,安全等領域中,還經常被嵌入到算法中,用以提高算法效率,并提高程式的安全性。

Python包含以下常用随機數函數:

函數 描述
choice(seq) 從序列的元素中随機挑選一個元素,比如random.choice(range(10)),從0到9中随機挑選一個整數。
randrange ([start,] stop [,step]) 從指定範圍内,按指定基數遞增的集合中擷取一個随機數,基數預設值為1
random() 随機生成下一個實數,它在[0,1)範圍内。
seed([x]) 改變随機數生成器的種子seed。如果你不了解其原理,你不必特别去設定seed,Python會幫你選擇seed。
shuffle(lst) 将序列的所有元素随機排序
uniform(x, y) 随機生成下一個實數,它在[x,y]範圍内。

Python三角函數

Python包括以下三角函數:

函數 描述
acos(x) 傳回x的反餘弦弧度值。
asin(x) 傳回x的反正弦弧度值。
atan(x) 傳回x的反正切弧度值。
atan2(y, x) 傳回給定的 X 及 Y 坐标值的反正切值。
cos(x) 傳回x的弧度的餘弦值。
hypot(x, y) 傳回歐幾裡德範數 sqrt(x*x + y*y)。
sin(x) 傳回的x弧度的正弦值。
tan(x) 傳回x弧度的正切值。
degrees(x) 将弧度轉換為角度,如degrees(math.pi/2) , 傳回90.0
radians(x) 将角度轉換為弧度

Python數學常量

常量 描述
pi 數學常量 pi(圓周率,一般以π來表示)
e 數學常量 e,e即自然常數(自然常數)。

Python 字元串

Python不支援單字元類型,單字元也在Python也是作為一個字元串使用。

Python轉義字元

在需要在字元中使用特殊字元時,python用反斜杠(\)轉義字元。如下表:

轉義字元 描述
\(在行尾時) 續行符
\\ 反斜杠符号
\' 單引号
\" 雙引号
\a 響鈴
\b 倒退(Backspace)
\e 轉義
\000
\n 換行
\v 縱向制表符
\t 橫向制表符
\r 回車
\f 換頁
\oyy 八進制數,yy代表的字元,例如:\o12代表換行
\xyy 十六進制數,yy代表的字元,例如:\x0a代表換行
\other 其它的字元以普通格式輸出

Python字元串運算符

下表執行個體變量a值為字元串"Hello",b變量值為"Python":

操作符 描述 執行個體
+ 字元串連接配接 a + b 輸出結果: HelloPython
* 重複輸出字元串 a*2 輸出結果:HelloHello
[] 通過索引擷取字元串中字元 a[1] 輸出結果 e
[ : ] 截取字元串中的一部分 a[1:4] 輸出結果ell
in 成員運算符 - 如果字元串中包含給定的字元傳回 True H in a 輸出結果 1
not in 成員運算符 - 如果字元串中不包含給定的字元傳回 True M not in a 輸出結果 1
r/R 原始字元串 - 原始字元串:所有的字元串都是直接按照字面的意思來使用,沒有轉義特殊或不能列印的字元。 原始字元串除在字元串的第一個引号前加上字母"r"(可以大小寫)以外,與普通字元串有着幾乎完全相同的文法。 print r'\n' prints \n 和 print R'\n'prints \n
% 格式字元串 情看一下章節

Python字元串格式化

Python 支援格式化字元串的輸出 。盡管這樣可能會用到非常複雜的表達式,但最基本的用法是将一個值插入到一個有字元串格式符 %s 的字元串中。

在 Python 中,字元串格式化使用與 C 中 sprintf 函數一樣的文法。

如下執行個體:

#!/usr/bin/python

print "My name is %s and weight is %d kg!" % ('Zara', 21) 
      

以上執行個體輸出結果:

My name is Zara and weight is 21 kg!
      

python字元串格式化符号:

<tbody

    符   号 描述
      %c  格式化字元及其ASCII碼
      %s  格式化字元串
      %d  格式化整數
      %u  格式化無符号整型
      %o  格式化無符号八進制數
      %x  格式化無符号十六進制數
      %X  格式化無符号十六進制數(大寫)
      %f  格式化浮點數字,可指定小數點後的精度
      %e  用科學計數法格式化浮點數
      %E  作用同%e,用科學計數法格式化浮點數
      %g  %f和%e的簡寫
      %G  %f 和 %E 的簡寫
      %p  用十六進制數格式化變量的位址

格式化操作符輔助指令:

符号 功能
* 定義寬度或者小數點精度
- 用做左對齊
+ 在正數前面顯示加号( + )
<sp> 在正數前面顯示空格
# 在八進制數前面顯示零('0'),在十六進制前面顯示'0x'或者'0X'(取決于用的是'x'還是'X')
顯示的數字前面填充'0'而不是預設的空格
% '%%'輸出一個單一的'%'
(var) 映射變量(字典參數)
m.n. m 是顯示的最小總寬度,n 是小數點後的位數(如果可用的話)

Python三引号(triple quotes)

python中三引号可以将複雜的字元串進行複制:

python三引号允許一個字元串跨多行,字元串中可以包含換行符、制表符以及其他特殊字元。

三引号的文法是一對連續的單引号或者雙引号(通常都是成對的用)。

>>> hi = '''hi 
there'''
>>> hi   # repr()
'hi\nthere'
>>> print hi  # str()
hi 
there  
      

三引号讓程式員從引号和特殊字元串的泥潭裡面解脫出來,自始至終保持一小塊字元串的格式是所謂的WYSIWYG(所見即所得)格式的。

一個典型的用例是,當你需要一塊HTML或者SQL時,這時用字元串組合,特殊字元串轉義将會非常的繁瑣。

errHTML = '''
<HTML><HEAD><TITLE>
Friends CGI Demo</TITLE></HEAD>
<BODY><H3>ERROR</H3>
<B>%s</B><P>
<FORM><INPUT TYPE=button VALUE=Back
ONCLICK="window.history.back()"></FORM>
</BODY></HTML>
'''
cursor.execute('''
CREATE TABLE users (  
login VARCHAR(8), 
uid INTEGER,
prid INTEGER)
''')
      

Unicode 字元串

Python 中定義一個 Unicode 字元串和定義一個普通字元串一樣簡單:

>>> u'Hello World !'
u'Hello World !'
      

引号前小寫的"u"表示這裡建立的是一個 Unicode 字元串。如果你想加入一個特殊字元,可以使用 Python 的 Unicode-Escape 編碼。如下例所示:

>>> u'Hello\u0020World !'
u'Hello World !'
      

被替換的 \u0020 辨別表示在給定位置插入編碼值為 0x0020 的 Unicode 字元(空格符)。

python的字元串内建函數

字元串方法是從python1.6到2.0慢慢加進來的——它們也被加到了Jython中。

這些方法實作了string子產品的大部分方法,如下表所示列出了目前字元串内建支援的方法,所有的方法都包含了對Unicode的支援,有一些甚至是專門用于Unicode的。

方法 描述
string.capitalize() 把字元串的第一個字元大寫
string.center(width) 傳回一個原字元串居中,并使用空格填充至長度 width 的新字元串
string.count(str, beg=0, end=len(string)) 傳回 str 在 string 裡面出現的次數,如果 beg 或者 end 指定則傳回指定範圍内 str 出現的次數
string.decode(encoding='UTF-8', errors='strict') 以 encoding 指定的編碼格式解碼 string,如果出錯預設報一個 ValueError 的 異 常 , 除 非 errors 指 定 的 是 'ignore' 或 者'replace'
string.encode(encoding='UTF-8', errors='strict') 以 encoding 指定的編碼格式編碼 string,如果出錯預設報一個ValueError 的異常,除非 errors 指定的是'ignore'或者'replace'
string.endswith(obj, beg=0, end=len(string)) 檢查字元串是否以 obj 結束,如果beg 或者 end 指定則檢查指定的範圍内是否以 obj 結束,如果是,傳回 True,否則傳回 False.
string.expandtabs(tabsize=8) 把字元串 string 中的 tab 符号轉為空格,預設的空格數 tabsize 是 8.
string.find(str, beg=0, end=len(string)) 檢測 str 是否包含在 string 中,如果 beg 和 end 指定範圍,則檢查是否包含在指定範圍内,如果是傳回開始的索引值,否則傳回-1
string.index(str, beg=0, end=len(string)) 跟find()方法一樣,隻不過如果str不在 string中會報一個異常.
string.isalnum()

如果 string 至少有一個字元并且所有字元都是字母或數字則返

回 True,否則傳回 False

string.isalpha()

如果 string 至少有一個字元并且所有字元都是字母則傳回 True,

否則傳回 False

string.isdecimal() 如果 string 隻包含十進制數字則傳回 True 否則傳回 False.
string.isdigit() 如果 string 隻包含數字則傳回 True 否則傳回 False.
string.islower() 如果 string 中包含至少一個區分大小寫的字元,并且所有這些(區分大小寫的)字元都是小寫,則傳回 True,否則傳回 False
string.isnumeric() 如果 string 中隻包含數字字元,則傳回 True,否則傳回 False
string.isspace() 如果 string 中隻包含空格,則傳回 True,否則傳回 False.
string.istitle() 如果 string 是标題化的(見 title())則傳回 True,否則傳回 False
string.isupper() 如果 string 中包含至少一個區分大小寫的字元,并且所有這些(區分大小寫的)字元都是大寫,則傳回 True,否則傳回 False
string.join(seq) Merges (concatenates)以 string 作為分隔符,将 seq 中所有的元素(的字元串表示)合并為一個新的字元串
string.ljust(width) 傳回一個原字元串左對齊,并使用空格填充至長度 width 的新字元串
string.lower() 轉換 string 中所有大寫字元為小寫.
string.lstrip() 截掉 string 左邊的空格
string.maketrans(intab, outtab]) maketrans() 方法用于建立字元映射的轉換表,對于接受兩個參數的最簡單的調用方式,第一個參數是字元串,表示需要轉換的字元,第二個參數也是字元串表示轉換的目标。
max(str) 傳回字元串 str 中最大的字母。
min(str) 傳回字元串 str 中最小的字母。
string.partition(str) 有點像 find()和 split()的結合體,從 str 出現的第一個位置起,把 字 符 串 string 分 成 一 個 3 元 素 的 元 組 (string_pre_str,str,string_post_str),如果 string 中不包含str 則 string_pre_str == string.
string.replace(str1, str2,  num=string.count(str1)) 把 string 中的 str1 替換成 str2,如果 num 指定,則替換不超過 num 次.
string.rfind(str, beg=0,end=len(string) ) 類似于 find()函數,不過是從右邊開始查找.
string.rindex( str, beg=0,end=len(string)) 類似于 index(),不過是從右邊開始.
string.rjust(width) 傳回一個原字元串右對齊,并使用空格填充至長度 width 的新字元串
string.rpartition(str) 類似于 partition()函數,不過是從右邊開始查找.
string.rstrip() 删除 string 字元串末尾的空格.
string.split(str="", num=string.count(str)) 以 str 為分隔符切片 string,如果 num有指定值,則僅分隔 num 個子字元串
string.splitlines(num=string.count('\n')) 按照行分隔,傳回一個包含各行作為元素的清單,如果 num 指定則僅切片 num 個行.
string.startswith(obj, beg=0,end=len(string)) 檢查字元串是否是以 obj 開頭,是則傳回 True,否則傳回 False。如果beg 和 end 指定值,則在指定範圍内檢查.
string.strip([obj]) 在 string 上執行 lstrip()和 rstrip()
string.swapcase() 翻轉 string 中的大小寫
string.title() 傳回"标題化"的 string,就是說所有單詞都是以大寫開始,其餘字母均為小寫(見 istitle())
string.translate(str, del="")

根據 str 給出的表(包含 256 個字元)轉換 string 的字元,

要過濾掉的字元放到 del 參數中

string.upper() 轉換 string 中的小寫字母為大寫
string.zfill(width) 傳回長度為 width 的字元串,原字元串 string 右對齊,前面填充0
string.isdecimal() isdecimal()方法檢查字元串是否隻包含十進制字元。這種方法隻存在于unicode對象。

Python清單腳本操作符

清單對 + 和 * 的操作符與字元串相似。+ 号用于組合清單,* 号用于重複清單。

如下所示:

Python 表達式 結果 描述
len([1, 2, 3]) 3 長度
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 組合
['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 重複
3 in [1, 2, 3] True 元素是否存在于清單中
for x in [1, 2, 3]: print x, 1 2 3 疊代

Python清單截取

Python的清單截取與字元串操作類型,如下所示:

L = ['spam', 'Spam', 'SPAM!']
      

操作:

Python 表達式 結果 描述
L[2] 'SPAM!' 讀取清單中第三個元素
L[-2] 'Spam' 讀取清單中倒數第二個元素
L[1:] ['Spam', 'SPAM!'] 從第二個元素開始截取清單

Python清單函數&方法

Python包含以下函數:

序号 函數
1

cmp(list1, list2)

比較兩個清單的元素

2

len(list)

清單元素個數

3

max(list)

傳回清單元素最大值

4

min(list)

傳回清單元素最小值

5

list(seq)

将元組轉換為清單

Python包含以下方法:

序号 方法
1

list.append(obj)

在清單末尾添加新的對象

2

list.count(obj)

統計某個元素在清單中出現的次數

3

list.extend(seq)

在清單末尾一次性追加另一個序列中的多個值(用新清單擴充原來的清單)

4

list.index(obj)

從清單中找出某個值第一個比對項的索引位置

5

list.insert(index, obj)

将對象插入清單

6

list.pop(obj=list[-1])

移除清單中的一個元素(預設最後一個元素),并且傳回該元素的值

7

list.remove(obj)

移除清單中某個值的第一個比對項

8

list.reverse()

反向清單中元素

9

list.sort([func])

對原清單進行排序

Python 字典(Dictionary)

字典是另一種可變容器模型,且可存儲任意類型對象,如其他容器模型。

字典由鍵和對應值成對組成。字典也被稱作關聯數組或哈希表。基本文法如下:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
      

也可如此建立字典:

dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };
      

每個鍵與值用冒号隔開(:),每對用逗号,每對用逗号分割,整體放在花括号中({})。

鍵必須獨一無二,但值則不必。

通路字典裡的值

把相應的鍵放入熟悉的方括弧,如下執行個體:

#!/usr/bin/python
 
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
 
print "dict['Name']: ", dict['Name'];
print "dict['Age']: ", dict['Age'];
      

以上執行個體輸出結果:

dict['Name']:  Zara
dict['Age']:  7
      

如果用字典裡沒有的鍵通路資料,會輸出錯誤如下:

#!/usr/bin/python
 
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
 
print "dict['Alice']: ", dict['Alice'];
      

以上執行個體輸出結果:

dict['Zara']:
Traceback (most recent call last):
  File "test.py", line 4, in <module>
    print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'
      

修改字典

向字典添加新内容的方法是增加新的鍵/值對,修改或删除已有鍵/值對如下執行個體:

#!/usr/bin/python
 
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
 
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry
 
 
print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];
      

以上執行個體輸出結果:

dict['Age']:  8
dict['School']:  DPS School
      

删除字典元素

能删單一的元素也能清空字典,清空隻需一項操作。

顯示删除一個字典用del指令,如下執行個體:

#!/usr/bin/python
 
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
 
del dict['Name']; # 删除鍵是'Name'的條目
dict.clear();     # 清空詞典所有條目
del dict ;        # 删除詞典
 
print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];
      

但這會引發一個異常,因為用del後字典不再存在:

dict['Age']:
Traceback (most recent call last):
  File "test.py", line 8, in <module>
    print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable
      

注:del()方法後面也會讨論。

删除字典元素

字典鍵的特性

字典值可以沒有限制地取任何python對象,既可以是标準的對象,也可以是使用者定義的,但鍵不行。

兩個重要的點需要記住:

1)不允許同一個鍵出現兩次。建立時如果同一個鍵被指派兩次,後一個值會被記住,如下執行個體:

#!/usr/bin/python
 
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'};
 
print "dict['Name']: ", dict['Name'];
      

以上執行個體輸出結果:

dict['Name']:  Manni
      

2)鍵必須不可變,是以可以用數,字元串或元組充當,是以用清單就不行,如下執行個體:

#!/usr/bin/python
 
dict = {['Name']: 'Zara', 'Age': 7};
 
print "dict['Name']: ", dict['Name'];
      

以上執行個體輸出結果:

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    dict = {['Name']: 'Zara', 'Age': 7};
TypeError: list objects are unhashable
      

字典内置函數&方法

Python字典包含了以下内置函數:

序号 函數及描述
1

cmp(dict1, dict2)

比較兩個字典元素。

2

len(dict)

計算字典元素個數,即鍵的總數。

3

str(dict)

輸出字典可列印的字元串表示。

4

type(variable)

傳回輸入的變量類型,如果變量是字典就傳回字典類型。

Python字典包含了以下内置函數:

序号 函數及描述
1

radiansdict.clear()

删除字典内所有元素

2

radiansdict.copy()

傳回一個字典的淺複制

3

radiansdict.fromkeys()

建立一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應的初始值

4

radiansdict.get(key, default=None)

傳回指定鍵的值,如果值不在字典中傳回default值

5

radiansdict.has_key(key)

如果鍵在字典dict裡傳回true,否則傳回false

6

radiansdict.items()

以清單傳回可周遊的(鍵, 值) 元組數組

7

radiansdict.keys()

以清單傳回一個字典所有的鍵

8

radiansdict.setdefault(key, default=None)

和get()類似, 但如果鍵不已經存在于字典中,将會添加鍵并将值設為default

9

radiansdict.update(dict2)

把字典dict2的鍵/值對更新到dict裡

10

radiansdict.values()

以清單傳回字典中的所有值

Python 日期和時間

Python程式能用很多方式處理日期和時間。轉換日期格式是一個常見的例行瑣事。Python有一個time and calendar模組可以幫忙。

什麼是Tick?

時間間隔是以秒為機關的浮點小數。

每個時間戳都以自從1970年1月1日午夜(曆元)經過了多長時間來表示。

Python附帶的受歡迎的time子產品下有很多函數可以轉換常見日期格式。如函數time.time()用ticks計時機關傳回從12:00am, January 1, 1970(epoch) 開始的記錄的目前作業系統時間, 如下執行個體:

#!/usr/bin/python
import time;  # This is required to include time module.

ticks = time.time()
print "Number of ticks since 12:00am, January 1, 1970:", ticks
      

以上執行個體輸出結果:

Number of ticks since 12:00am, January 1, 1970: 7186862.73399
      

Tick機關最适于做日期運算。但是1970年之前的日期就無法以此表示了。太遙遠的日期也不行,UNIX和Windows隻支援到2038年某日。

什麼是時間元組?

很多Python函數用一個元組裝起來的9組數字處理時間:

<td0到59< td="" style="font-family: 'Microsoft Yahei', 'Helvetica Neue', Helvetica, Arial, sans-serif;">

序号 字段
4位數年 2008
1 1 到 12
2 1到31
3 小時 0到23
4 分鐘
5 0到61 (60或61 是閏秒)
6 一周的第幾日 0到6 (0是周一)
7 一年的第幾日 1到366 (儒略曆)
8 夏令時 -1, 0, 1, -1是決定是否為夏令時的旗幟

上述也就是struct_time元組。這種結構具有如下屬性:

序号 屬性
tm_year 2008
1 tm_mon 1 到 12
2 tm_mday 1 到 31
3 tm_hour 0 到 23
4 tm_min 0 到 59
5 tm_sec 0 到 61 (60或61 是閏秒)
6 tm_wday 0到6 (0是周一)
7 tm_yday 1 到 366(儒略曆)
8 tm_isdst -1, 0, 1, -1是決定是否為夏令時的旗幟

擷取目前時間

從傳回浮點數的時間辍方式向時間元組轉換,隻要将浮點數傳遞給如localtime之類的函數。

#!/usr/bin/python
import time;

localtime = time.localtime(time.time())
print "Local current time :", localtime
      

以上執行個體輸出結果:

Local current time : time.struct_time(tm_year=2013, tm_mon=7, 
tm_mday=17, tm_hour=21, tm_min=26, tm_sec=3, tm_wday=2, tm_yday=198, tm_isdst=0)
      

擷取格式化的時間

你可以根據需求選取各種格式,但是最簡單的擷取可讀的時間模式的函數是asctime():

#!/usr/bin/python
import time;

localtime = time.asctime( time.localtime(time.time()) )
print "Local current time :", localtime
      

以上執行個體輸出結果:

Local current time : Tue Jan 13 10:17:09 2009
      

擷取某月月曆

Calendar子產品有很廣泛的方法用來處理年曆和月曆,例如列印某月的月曆:

#!/usr/bin/python
import calendar

cal = calendar.month(2008, 1)
print "Here is the calendar:"
print cal;
      

以上執行個體輸出結果:

Here is the calendar:
    January 2008
Mo Tu We Th Fr Sa Su
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
      

Time子產品

Time子產品包含了以下内置函數,既有時間處理相的,也有轉換時間格式的:

序号 函數及描述
1

time.altzone

傳回格林威治西部的夏令時地區的偏移秒數。如果該地區在格林威治東部會傳回負值(如西歐,包括英國)。對夏令時啟用地區才能使用。

2

time.asctime([tupletime])

接受時間元組并傳回一個可讀的形式為"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18時07分14秒)的24個字元的字元串。

3

time.clock( )

用以浮點數計算的秒數傳回目前的CPU時間。用來衡量不同程式的耗時,比time.time()更有用。

4

time.ctime([secs])

作用相當于asctime(localtime(secs)),未給參數相當于asctime()

5

time.gmtime([secs])

接收時間辍(1970紀元後經過的浮點秒數)并傳回格林威治天文時間下的時間元組t。注:t.tm_isdst始終為0

6

time.localtime([secs])

接收時間辍(1970紀元後經過的浮點秒數)并傳回當地時間下的時間元組t(t.tm_isdst可取0或1,取決于當地當時是不是夏令時)。

7

time.mktime(tupletime)

接受時間元組并傳回時間辍(1970紀元後經過的浮點秒數)。

8

time.sleep(secs)

推遲調用線程的運作,secs指秒數。

9

time.strftime(fmt[,tupletime])

接收以時間元組,并傳回以可讀字元串表示的當地時間,格式由fmt決定。

10

time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')

根據fmt的格式把一個時間字元串解析為時間元組。

11

time.time( )

傳回目前時間的時間戳(1970紀元後經過的浮點秒數)。

12

time.tzset()

根據環境變量TZ重新初始化時間相關設定。

Time子產品包含了以下2個非常重要的屬性:

序号 屬性及描述
1

time.timezone

屬性time.timezone是當地時區(未啟動夏令時)距離格林威治的偏移秒數(>0,美洲;<=0大部分歐洲,亞洲,非洲)。

2

time.tzname

屬性time.tzname包含一對根據情況的不同而不同的字元串,分别是帶夏令時的本地時區名稱,和不帶的。

月曆(Calendar)子產品

此子產品的函數都是月曆相關的,例如列印某月的字元月曆。

星期一是預設的每周第一天,星期天是預設的最後一天。更改設定需調用calendar.setfirstweekday()函數。子產品包含了以下内置函數:

序号 函數及描述
1

calendar.calendar(year,w=2,l=1,c=6)

傳回一個多行字元串格式的year年年曆,3個月一行,間隔距離為c。 每日寬度間隔為w字元。每行長度為21* W+18+2* C。l是每星期行數。

2

calendar.firstweekday( )

傳回目前每周起始日期的設定。預設情況下,首次載入caendar子產品時傳回0,即星期一。

3

calendar.isleap(year)

是閏年傳回True,否則為false。

4

calendar.leapdays(y1,y2)

傳回在Y1,Y2兩年之間的閏年總數。

5

calendar.month(year,month,w=2,l=1)

傳回一個多行字元串格式的year年month月月曆,兩行标題,一周一行。每日寬度間隔為w字元。每行的長度為7* w+6。l是每星期的行數。

6

calendar.monthcalendar(year,month)

傳回一個整數的單層嵌套清單。每個子清單裝載代表一個星期的整數。Year年month月外的日期都設為0;範圍内的日子都由該月第幾日表示,從1開始。

7

calendar.monthrange(year,month)

傳回兩個整數。第一個是該月的星期幾的日期碼,第二個是該月的日期碼。日從0(星期一)到6(星期日);月從1到12。

8

calendar.prcal(year,w=2,l=1,c=6)

相當于 print calendar.calendar(year,w,l,c).

9

calendar.prmonth(year,month,w=2,l=1)

相當于 print calendar.calendar(year,w,l,c)。

10

calendar.setfirstweekday(weekday)

設定每周的起始日期碼。0(星期一)到6(星期日)。

11

calendar.timegm(tupletime)

和time.gmtime相反:接受一個時間元組形式,傳回該時刻的時間辍(1970紀元後經過的浮點秒數)。

12

calendar.weekday(year,month,day)

傳回給定日期的日期碼。0(星期一)到6(星期日)。月份為 1(一月) 到 12(12月)。

其他相關子產品和函數

在Python種,其他處理日期和時間的子產品還有:

  • datetime子產品
  • pytz子產品
  • ateutil子產品