[python學習]基礎

python 中文編碼

python 輸出 "Hello, World!",英文沒有問題,可是若是你輸出中文字符"你好,世界"就有可能會碰到中文編碼問題。
html

解決方法爲只要在文件開頭加入 # -*- coding: UTF-8 -*- 或者 #coding=utf-8 就好了 python

python 標識符:

在python裏,標識符有字母、數字、下劃線組成。 git

在python中,全部標識符能夠包括英文、數字以及下劃線(_),但不能以數字開頭。 shell

python中的標識符是區分大小寫的。 api

如下劃線開頭的標識符是有特殊意義的。以單下劃線開頭(_foo)的表明不能直接訪問的類屬性,需經過類提供的接口進行訪問,不能用"from xxx import *"而導入; 數組

以雙下劃線開頭的(__foo)表明類的私有成員;以雙下劃線開頭和結尾的(__foo__)表明python裏特殊方法專用的標識,如__init__()表明類的構造函數。 數據結構

Python 註釋

python中單行註釋採用 # 開頭。python沒有塊註釋,因此如今推薦的多行註釋也是採用的 # app

python 空行

函數之間或類的方法之間用空行分隔,表示一段新的代碼的開始。類和函數入口之間也用一行空行分隔,以突出函數入口的開始。 dom

空行與代碼縮進不一樣,空行並非Python語法的一部分。書寫時不插入空行,Python解釋器運行也不會出錯。可是空行的做用在於分隔兩段不一樣功能或含義的代碼,便於往後代碼的維護或重構。 函數

記住:空行也是程序代碼的一部分。

python能夠在同一行中使用多條語句,語句之間使用分號(;)分割


縮進相同的一組語句構成一個代碼塊,咱們稱之代碼組

像if、while、def和class這樣的複合語句,首行以關鍵字開始,以冒號( : )結束,該行以後的一行或多行代碼構成代碼組。咱們將首行及後面的代碼組稱爲一個子句(clause)

命令行參數

$ python -h 
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ... 
Options and arguments (and corresponding environment variables): 
-c cmd : program passed in as string (terminates option list) 
-d     : debug output from parser (also PYTHONDEBUG=x) 
-E     : ignore environment variables (such as PYTHONPATH) 
-h     : print this help message and exit 
 
[ etc. ]

python變量

Python中的變量不須要聲明,變量的賦值操做既是變量聲明和定義的過程。

每一個變量在內存中建立,都包括變量的標識,名稱和數據這些信息。

每一個變量在使用前都必須賦值,變量賦值之後該變量纔會被建立。

等號(=)用來給變量賦值。

等號(=)運算符左邊是一個變量名,等號(=)運算符右邊是存儲在變量中的值。

使用del語句刪除單個或多個對象, del 語句來刪除列表的的元素

Python容許你同時爲多個變量賦值。例如:

a = b = c = 1

也能夠爲多個對象指定多個變量。例如:

a, b, c = 1, 2, "john"

python標準數據類型:

  • Numbers(數字)
  • String(字符串)
  • List(列表)
  • Tuple(元組)
  • Dictionary(字典)
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

python的字串列表有2種取值順序:

  • 從左到右索引默認0開始的,最大範圍是字符串長度少1
  • 從右到左索引默認-1開始的,最大範圍是字符串開頭

若是你的實要取得一段子串的話,能夠用到變量[頭下標:尾下標],就能夠截取相應的字符串,其中下標是從0開始算起,能夠是正數或負數,下標能夠爲空表示取到頭或尾。

List(列表) 是 Python 中使用最頻繁的數據類型。

列表能夠完成大多數集合類的數據結構實現。它支持字符,數字,字符串甚至能夠包含列表(所謂嵌套)。

列表用[ ]標識,用逗號分開。是python最通用的複合數據類型。看這段代碼就明白。

列表中的值得分割也能夠用到變量[頭下標:尾下標],就能夠截取相應的列表,從左到右索引默認0開始的,從右到左索引默認-1開始,下標能夠爲空表示取到頭或尾。

加號(+)是列表鏈接運算符,星號(*)是重複操做。以下實例:

#coding=utf-8
#!/usr/bin/python

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']

print list # 輸出完整列表
print list[0] # 輸出列表的第一個元素
print list[1:3] # 輸出第二個至第三個的元素 
print list[2:] # 輸出從第三個開始至列表末尾的全部元素
print tinylist * 2 # 輸出列表兩次
print list + tinylist # 打印組合的列表
以上實例輸出結果:
['abcd', 786, 2.23, 'john', 70.2]
abcd
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.2, 123, 'john']

元組是另外一個數據類型,相似於List(列表)。

元組用"()"標識,內部元素用逗號隔開。可是元素不能二次賦值,至關於只讀列表。

字典(dictionary)是除列表之外python之中最靈活的內置數據結構類型。列表是有序的對象結合,字典是無序的對象集合。

二者之間的區別在於:字典當中的元素是經過鍵來存取的,而不是經過偏移存取。

字典用"{ }"標識。字典由索引(key)和它對應的值value組成,

tinydict = {'name': 'john','code':6734, 'dept': 'sales'}

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 轉換爲一個列表

set(s)

轉換爲可變集合

dict(d)

建立一個字典。d 必須是一個序列 (key,value)元組。

frozenset(s)

轉換爲不可變集合

chr(x)

將一個整數轉換爲一個字符

unichr(x)

將一個整數轉換爲Unicode字符

ord(x)

將一個字符轉換爲它的整數值

hex(x)

將一個整數轉換爲一個十六進制字符串

oct(x)

將一個整數轉換爲一個八進制字符串

如下假設變量a爲10,變量b爲20

算術運算符 描述 實例
+ 加 - 兩個對象相加 a + b 輸出結果 30
- 減 - 獲得負數或是一個數減去另外一個數 a - b 輸出結果 -10
* 乘 - 兩個數相乘或是返回一個被重複若干次的字符串 a * b 輸出結果 200
/ 除 - x除以y b / a 輸出結果 2
% 取模 - 返回除法的餘數 b % a 輸出結果 0
** 冪 - 返回x的y次冪 a**b 爲10的20次方, 輸出結果 100000000000000000000
// 取整除 - 返回商的整數部分 9//2 輸出結果 4 , 9.0//2.0 輸出結果 4.0
比較運算符 描述 實例
== 等於 - 比較對象是否相等 (a == b) 返回 False。
!= 不等於 - 比較兩個對象是否不相等 (a != b) 返回 true.
<> 不等於 - 比較兩個對象是否不相等 (a <> b) 返回 true。這個運算符相似 != 。
> 大於 - 返回x是否大於y (a > b) 返回 False。
< 小於 - 返回x是否小於y。全部比較運算符返回1表示真,返回0表示假。這分別與特殊的變量True和False等價。注意,這些變量名的大寫。 (a < b) 返回 true。
>= 大於等於 - 返回x是否大於等於y。 (a >= b) 返回 False。
<= 小於等於 - 返回x是否小於等於y。 (a <= b) 返回 true。
賦值運算符 描述 實例
= 簡單的賦值運算符 c = a + b 將 a + b 的運算結果賦值爲 c
+= 加法賦值運算符 c += a 等效於 c = c + a
-= 減法賦值運算符 c -= a 等效於 c = c - a
*= 乘法賦值運算符 c *= a 等效於 c = c * a
/= 除法賦值運算符 c /= a 等效於 c = c / a
%= 取模賦值運算符 c %= a 等效於 c = c % a
**= 冪賦值運算符 c **= a 等效於 c = c ** a
//= 取整除賦值運算符 c //= a 等效於 c = c // a
位運算符 描述 實例
& 按位與運算符 (a & b) 輸出結果 12 ,二進制解釋: 0000 1100
| 按位或運算符 (a | b) 輸出結果 61 ,二進制解釋: 0011 1101
^ 按位異或運算符 (a ^ b) 輸出結果 49 ,二進制解釋: 0011 0001
~ 按位取反運算符 (~a ) 輸出結果 -61 ,二進制解釋: 1100 0011, 在一個有符號二進制數的補碼形式
<< 左移動運算符 a << 2 輸出結果 240 ,二進制解釋: 1111 0000
>> 右移動運算符 a >> 2 輸出結果 15 ,二進制解釋: 0000 1111


邏輯運算符 描述 實例
and 布爾"與" - 若是x爲False,x and y返回False,不然它返回y的計算值。 (a and b) 返回 true。
or 布爾"或" - 若是x是True,它返回True,不然它返回y的計算值。 (a or b) 返回 true。
not 布爾"非" - 若是x爲True,返回False。若是x爲False,它返回True。 not(a and b) 返回 false。
Python還支持成員運算符,包含了一系列的成員,包括字符串,列表或元組
成員運算符 描述 實例
in 若是在指定的序列中找到值返回True,不然返回False。 x 在 y序列中 , 若是x在y序列中返回True。
not in 若是在指定的序列中沒有找到值返回True,不然返回False。 x 不在 y序列中 , 若是x不在y序列中返回True。

身份運算符用於比較兩個對象的存儲單元

身份運算符 描述 實例
is is是判斷兩個標識符是否是引用自一個對象 x is y, 若是 id(x) 等於 id(y) , is 返回結果 1
is not is not是判斷兩個標識符是否是引用自不一樣對象 x is not y, 若是 id(x) 不等於 id(y). is not 返回結果 1
if 判斷條件1: 
  執行語句1…… 
elif 判斷條件2: 
   執行語句2…… 
elif 判斷條件3: 
   執行語句3…… 
else: 
   執行語句4……
while 判斷條件:
    執行語句……
for iterating_var in sequence:
   statements(s)
循環控制語句 描述
break 在語句塊執行過程當中終止循環,而且跳出整個循環
continue 在語句塊執行過程當中終止當前循環,跳出該次循環,執行下一次循環。
pass pass是空語句,是爲了保持程序結構的完整性。

函數 返回值 ( 描述 )
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
隨機函數 描述
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]範圍內。
三角函數 描述
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) 將角度轉換爲弧度

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

python字符串

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

字符串操做符 描述 實例
+ 字符串鏈接 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字符串格式化符號:

    符   號 描述
      %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 顯示的數字前面填充'0'而不是默認的空格
% '%%'輸出一個單一的'%'
(var) 映射變量(字典參數)
m.n. m 是顯示的最小總寬度,n 是小數點後的位數(若是可用的話)

python中三引號能夠將複雜的字符串進行復制:

python三引號容許一個字符串跨多行,字符串中能夠包含換行符、製表符以及其餘特殊字符。

三引號的語法是一對連續的單引號或者雙引號(一般都是成對的用)。

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

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

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

python內建字符串函數

這些方法實現了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 列表

cmp:


若是比較的元素是同類型的,則比較其值,返回結果。

若是兩個元素不是同一種類型,則檢查它們是不是數字。

  • 若是是數字,執行必要的數字強制類型轉換,而後比較。
  • 若是有一方的元素是數字,則另外一方的元素"大"(數字是"最小的")
  • 不然,經過類型名字的字母順序進行比較。

若是有一個列表首先到達末尾,則另外一個長一點的列表"大"。

若是咱們用盡了兩個列表的元素並且所 有元素都是相等的,那麼結果就是個平局,就是說返回一個 0。

序號 函數
1 cmp(list1, list2)
比較兩個列表的元素
2 len(list)
列表元素個數
3 max(list)
返回列表元素最大值
4 min(list)
返回列表元素最小值
5 list(seq)
將元組轉換爲列表
序號 方法
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 元組

元組中的元素值是不容許刪除的,但咱們可使用del語句來刪除整個元組。

元組使用小括號,列表使用方括號。

元組建立很簡單,只須要在括號中添加元素,並使用逗號隔開便可。

以下實例:

tup1 = ('physics', 'chemistry', 1997, 2000); tup2 = (1, 2, 3, 4, 5 ); tup3 = "a", "b", "c", "d";

建立空元組

tup1 = ();

元組中只包含一個元素時,須要在元素後面添加逗號

tup1 = (50,);

元組與字符串相似,下標索引從0開始,能夠進行截取,組合等。

python 字典


能刪單一的元素也能清空字典,清空只需一項操做。

顯示刪除一個字典用del命令,以下實例:

#coding=utf-8
#!/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'];
序號 函數及描述
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()
以列表返回字典中的全部值

如下實例示了 update()函數的使用方法:

#!/usr/bin/python 
dict = {'Name': 'Zara', 'Age': 7} 
dict2 = {'Sex': 'female' } 
dict.update(dict2) 
print "Value : %s" % dict

以上實例輸出結果爲:

Value : {'Age': 7, 'Name': 'Zara', 'Sex': 'female'}

Python日期和時間

#!/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

localtime

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

#!/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)

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

Python 函數

按值傳參和按引用傳參數:全部參數(自變量)在Python裏都是按引用傳遞。若是你在函數裏修改了參數,那麼在調用這個函數的函數裏,原始的參數也被改變了

必備參數

#coding=utf-8
#!/usr/bin/python
 
#可寫函數說明
def printme( str ):
   "打印任何傳入的字符串"
   print str;
   return;
 
#調用printme函數
printme(); #缺乏必備參數,發生錯誤

命名參數

#coding=utf-8
#!/usr/bin/python
 
#可寫函數說明
def printinfo( name, age ):
   "打印任何傳入的字符串"
   print "Name: ", name;
   print "Age ", age;
   return;
 
#調用printinfo函數
printinfo( age=50, name="miki" );
缺省參數

#coding=utf-8
#!/usr/bin/python
 
#可寫函數說明
def printinfo( name, age = 35 ):
   "打印任何傳入的字符串"
   print "Name: ", name;
   print "Age ", age;
   return;
 
#調用printinfo函數
printinfo( age=50, name="miki" );
printinfo( name="miki" );
不定長參數

#coding=utf-8
#!/usr/bin/python
 
# 可寫函數說明
def printinfo( arg1, *vartuple ):
   "打印任何傳入的參數"
   print "輸出: "
   print arg1
   for var in vartuple:
      print var
   return;
 
# 調用printinfo 函數
printinfo( 10 );
printinfo( 70, 60, 50 );
匿名函數

  • Lambda函數能接收任何數量的參數但只能返回一個表達式的值,同時只能不能包含命令或多個表達式。
  • 匿名函數不能直接調用print,由於lambda須要一個表達式。
  • lambda函數擁有本身的名字空間,且不能訪問自有參數列表以外或全局名字空間裏的參數。
  • 雖然lambda函數看起來只能寫一行,卻不等同於C或C++的內聯函數,後者的目的是調用小函數時不佔用棧內存從而增長運行效率。
#coding=utf-8
#!/usr/bin/python
 
#可寫函數說明
sum = lambda arg1, arg2: arg1 + arg2;
 
#調用sum函數
print "Value of total : ", sum( 10, 20 )
print "Value of total : ", sum( 20, 20 )
return語句[表達式]退出函數,選擇性地向調用方返回一個表達式。不帶參數值的return語句返回None。以前的例子都沒有示範如何返回數值

定義在函數內部的變量擁有一個局部做用域,定義在函數外的擁有全局做用域。

局部變量只能在其被聲明的函數內部訪問,而全局變量能夠在整個程序範圍內訪問。調用函數時,全部在函數內聲明的變量名稱都將被加入到做用域中。

Python模塊

import語句

#coding=utf-8
#!/usr/bin/python
 
# 導入模塊
import support
 
# 如今能夠調用模塊裏包含的函數了
support.print_func("Zara")
from ...import .../*

Python的from語句讓你從模塊中導入一個指定的部分到當前命名空間中

當你導入一個模塊,Python解析器對模塊位置的搜索順序是:

  • 當前目錄
  • 若是不在當前目錄,Python則搜索在shell變量PYTHONPATH下的每一個目錄.
  • 若是都找不到,Python會察看默認路徑。UNIX下,默認路徑通常爲/usr/local/lib/python/
模塊搜索路徑存儲在system模塊的sys.path變量中。變量裏包含當前目錄,PYTHONPATH和由安裝過程決定的默認目錄

個函數都有本身的命名空間。類的方法的做用域規則和一般函數的同樣。

Python會智能地猜想一個變量是局部的仍是全局的,它假設任何在函數內賦值的變量都是局部的。

所以,若是要給全局變量在一個函數裏賦值,必須使用global語句。

global VarName的表達式會告訴Python, VarName是一個全局變量,這樣Python就不會在局部命名空間裏尋找這個變量了。

dir()函數一個排好序的字符串列表,在一個模塊裏定義的全部模塊,變量和函數

#coding=utf-8
#!/usr/bin/python
 
# 導入內置math模塊
import math
content = dir(math)
print content;
['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log', 'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh']
在這裏,特殊字符串變量__name__指向模塊的名字,__file__指向該模塊的導入文件名。

python 中的包

包是一個分層次的文件目錄結構,它定義了一個由模塊及子包,和子包下的子包等組成的Python的應用環境。

考慮一個在Phone目錄下有以下文件:

  • Phone/Isdn.py 含有函數Isdn()
  • Phone/G3.py 含有函數G3()
  • Phone/posts.py含有函數posts()

如今,在Phone目錄下建立file __init__.py:

  • Phone/__init__.py
from Pots import Pots
from Isdn import Isdn
from G3 import G3
當你把這些代碼添加到__init__.py以後,導入Phone包的時候這些類就全都是可用的了。

#coding=utf-8
#!/usr/bin/python
 
# Now import your Phone Package.
import Phone
 
Phone.Pots()
Phone.Isdn()
Phone.G3()

python異常處理


捕捉異常可使用try/except語句。

try/except語句用來檢測try語句塊中的錯誤,從而讓except語句捕獲異常信息並處理。

若是你不想在異常發生時結束你的程序,只需在try裏捕獲它。

try-finally 語句不管是否發生異常都將執行最後的代碼
#!/usr/bin/python

try:
   fh = open("testfile", "w")
   fh.write("This is my test file for exception handling!!")
except IOError: #異常類型,可無,可多個
   print "Error: can\'t find file or read data"
else:
   print "Written content in the file successfully"
相關文章
相關標籤/搜索