在Python中,全部標識符能夠包括英文、數字以及下劃線(_),但不能以數字開頭。java
在Python中的標識符是區分大小寫的。python
在Python中如下劃線開頭的標識符是有特殊意義的。程序員
代碼示例:小程序
class person: name = "" age = 0 _gender = "" __father = "" def __init__(self, name, age): self.name = name self.age = age print "初始化"
Python中有31個保留字,這些保留字不能用做常數或者變數,或者任何其餘標識符名稱。全部Python的關鍵字只包含小寫字母。api
序號 | 保留字 | 說明 |
---|---|---|
1 | and | 用於表達式運算,邏輯與操做。 |
2 | as | 用於類型轉換。 |
3 | assert | 斷言,用於判斷變量或條件表達式的值是否爲真。 |
4 | break | 中斷循環語句的執行。 |
5 | class | 用於定義類。 |
6 | continue | 繼續執行下一次循環。 |
7 | def | 用於定義函數或方法。 |
8 | del | 刪除變量或序列的值。 |
9 | elif | 條件語句,與if、else結合使用。 |
10 | esle | 條件語句,與if、elif結合使用。也可用於異常和循環語句。 |
11 | except | 包含捕獲異常後的操做代碼塊,與try、finally結合使用。 |
12 | exec | 用於執行Python語句。 |
13 | for | for循環語句。 |
14 | finally | 用於異常語句,出現異常後,始終要執行finally包含的代碼塊。 |
15 | from | 用於導入模塊,與import結合使用。 |
16 | global | 定義全局變量。 |
17 | if | 條件語句,與else、elif結合使用。 |
18 | import | 用於導入模塊,與from結合使用。 |
19 | in | 判斷變量是否存在序列中。 |
20 | is | 判斷變量是否爲某個類的實例。 |
21 | lambda | 定義匿名函數。 |
22 | not | 用於表達式運算,邏輯與操做。 |
23 | or | 用於表達式運算,邏輯或操做。 |
24 | pass | 空的類,函數,方法的佔位符。 |
25 | 打印語句。 | |
26 | raise | 異常拋出操做。 |
27 | return | 用於從函數返回計算結果。 |
28 | try | 包含可能會出現異常的語句,與except,finally結合使用。 |
29 | while | 循環語句。 |
30 | with | 簡化Python語句。 |
31 | yield | 用於從函數依次返回值。 |
32 | 保留字 | 說明 |
爲了寫出優雅的代碼,Python中常用PEP8規範,規定以下:數據結構
每組導入之間使用空行隔開。app
代碼示例:函數
print "hello";print "world" item_one = 3 item_tow = 4 item_three = 5 total = item_one + \ item_tow + \ item_three print total
hello world 12
Python中使用縮進來表示做用範圍,因此Python中縮進格式要嚴格遵循結構。.net
代碼示例:3d
num = 2 + 3 + 4 if num > 5: print "大於" else: print "小於"
大於
代碼以下:
# 這是單行註釋 '''這是單引號多行註釋''' """這是雙引號多行註釋"""
Python中的常量並不會受到保護,若是真的改是不會報錯的,因此能夠認爲Python中並不真正存在語言意義上的常量,而是約定經過大寫的變量標明它是一個常量,後續不要修改。
代碼示例:
x = "abc" print "x is {}".format(x) x = 123 print "x is {}".format(x) x = y = z = 999 print "x is {},y is {}, z is {}".format(x, y, z) x, y, z = 1, 2, 'a' print "x is {},y is {}, z is {}".format(x, y, z)
x is abc x is 123 x is 999,y is 999, z is 999 x is 1,y is 2, z is a
format()函數配合花括號{}使用,能夠起到佔位符的做用。
Python中變量互換值不像其餘語言那樣須要三方變量,這裏使用了一種語法糖。
代碼示例:
a = "x" b = "y" a, b = b, a print "a is {}, b is {}".format(a, b)
a is y, b is x
一個程序的全部的變量並非在哪一個位置均可以訪問的。訪問權限決定於這個變量是在哪裏賦值的。
變量的做用域決定了在哪一部分程序你能夠訪問哪一個特定的變量名稱。
兩種最基本的變量做用域以下:全局變量、局部變量。
定義在函數內部的變量擁有一個局部做用域,定義在函數外的擁有全局做用域。
局部變量只能在其被聲明的函數內部訪問,而全局變量能夠在整個程序範圍內訪問。調用函數時,全部在函數內聲明的變量名稱都將被加入到做用域中。
雖然Python中的引用沒有數據類型,可是Python是有數據類型的概念的。
Python中有5大標準數據類型,分別是:Number(數字)、String(字符串)、List(列表)、Tuple(元祖)、Dictionary(字典)。
這裏介紹的內容以下:
這裏有幾個函數,在判斷類型和內存的時候會用到:
Python Number 數據類型用於存儲數值。
Number數據類型是不容許改變的,這就意味着若是改變 Number 數據類型的值,將從新分配內存空間。
Python支持四種不一樣的Number類型:
代碼示例:
x = 1 #整型 x = 2L #長整型 x = 3.1415 #浮點型 #複數 x = complex(32, 64) print x x = 32 + 64j print x
(32+64j) (32+64j)
Python中能夠用單引號、雙引號、三引號來聲明字符串直接量。
在聲明字符串直接量時單引號和雙引號沒什麼區別。'abc'和"abc"等價。
而三引號聲明的字符串中能夠包含任意字符,這些字符會被直接看成字符串的內容。
Python中並不存在相似java中char的字符類型,想要表示一個字符,寫成一個長度爲1的字符串便可。
Python中字符串是有下標的,下標從0開始。Python中String類型是不可變類型的對象。
Python中len()函數能夠查看字符串的長度。
代碼示例:
x = 'abc' print id(x) x = "abc" print id(x) x = '''abc''' print len(x) print id(x) x = """abc""" print id(x) x = "b" print id(x)
41772656 41772656 3 41772656 41772656 39430944
由上述代碼能夠看出,四種引號聲明的對象是同樣的效果。String對象是不可變的。
Python中使用反斜槓(\)做爲轉義字符
轉義字符 | 說明 |
---|---|
\ | 續行符 |
\ | 反斜槓符號 |
' | 單引號 |
" | 雙引號 |
\a | 響鈴 |
\b | 退格 |
\e | 轉義 |
\000 | 空格 |
\n | 換行 |
\v | 縱向製表符 |
\t | 橫向製表符 |
\r | 回車 |
\f | 換頁 |
\oyy | 八進制數,yy表明的字符。例如:\o12表明換行 |
\xyy | 十六進制數,yy表明的字符。例如:\x0a表明換行 |
\other | 其餘的字符以普通格式輸出。 |
代碼示例:
a = "Hello" b = "Workd" print a + b print a * 2 print a[1] print a[-2] print a[1:3] print a[0:4:2] print a[:2] print a[::-1] #反轉字符串 print "H" in a print "H" not in b print r'\n',R'\n'
HelloWorkd HelloHello e l el Hl He olleH True True \n \n
Python 支持格式化字符串的輸出 。儘管這樣可能會用到很是複雜的表達式,但最基本的用法是將一個值插入到一個有字符串格式符 %s 的字符串中。
代碼示例:
print "My name is %s and age is %d !" % ("xh", 25)
My name is xh and age is 25 !
格式化符號:
格式化符號 | 說明 |
---|---|
%c | 格式化字符以及ASCII碼 |
%s | 格式化字符串 |
%d | 格式化整數 |
%u | 格式化無符號整數 |
%o | 格式化無符號八進制數 |
%x | 格式化無符號十六進制數 |
%X | 格式化無符號十六進制數(大寫) |
%f | 格式化浮點數字,可指定小數點後的精度。 |
%e | 用科學計數法格式化浮點小數 |
%E | 用科學計數法格式化浮點數,同%e的做用。 |
%g | %f和%e的簡寫 |
%G | %f和%E的簡寫 |
%p | 用十六進制數格式化變量的地址 |
輔助指令:
符號 | 說明 |
---|---|
* | 定義寬度或者小數點精度 |
- | 用做左對齊 |
+ | 在正數前面顯示加號 |
<sp> | 在正數前面顯示空格 |
# | 在八進制數前面顯示零,在十六進制前面顯示0x或者0X |
0 | 顯示的數字前面填充0而不是默認的空格 |
% | %% 輸出一個單一的% |
(var) | 映射變量 |
m.n | m是顯示的最小總寬度,n是小數點後的位數 |
python中三引號能夠將複雜的字符串進行復制:
三引號讓程序員從引號和特殊字符串的泥潭裏面解脫出來,自始至終保持一小塊字符串的格式是所謂的WYSIWYG(所見即所得)格式的。
Python中提供了不少操做字符串的函數,這些函數是字符串的使用更加便捷。如下將介紹常見的字符串操做:
string = "My name is xinghan, I am very happy!" # 將起始字符大寫,其餘字符一概小寫 string.capitalize()
'My name is xinghan, i am very happy!'
# 將字符串按照指定寬度居中顯示,默認兩端填補空格,也能夠指定符號填補。 string.center(100) string.center(100,"%")
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%My name is xinghan, I am very happy!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'
# 計數函數,用於統計一個字符串中出現的指定字符的個數。 string.count('a')
4
# 判斷字符串以指定字符結尾 string.endswith('ppy!')
True
# 判斷字符串是否以指定字符開始 string.startswith('My')
True
# 查找字符,找到返回下標,不存在返回-1。支持指定查找開始位置。 string.find('i') string.find('i', 9)
12
# 查找字符,找到返回下標,不存在將報錯。支持指定查找開始位置。 string.index('i', 9)
12
# 大小寫轉換 string.upper() #轉成大寫 string.lower() #轉成小寫
'my name is xinghan, i am very happy!'
# 標題判斷,若是一個字符串中,首字母大寫,其餘字母所有小寫,則斷定爲標題 string.istitle()
False
# 判斷大小寫 string.isupper() string.islower()
False
# 去空,將字符串兩端包含的空格,換行等空白去掉。不會去除中間的。 string.strip() # 僅去除左邊的空格 string.lstrip() # 僅去除右邊的空格 string.rstrip()
'My name is xinghan, I am very happy!'
# 將字符串中的大小寫互換。 string.swapcase()
'mY NAME IS XINGHAN, i AM VERY HAPPY!'
直接量只有兩個True、False。
布爾類型的與或非and、or、not。
Python中指定任何非0和非空(null)值爲true,0 或者 null爲false。
代碼示例:
flg1 = True flg2 = False print not flg1 print flg1 and flg2 print flg1 or flg2
False False True
Python中的空值,不使用null,而是使用None來表示。
Python中各個數據類型是能夠互相轉換的,轉換方法以下:
Python中有7種運算符,分別是:
算術運算符有如下幾種:
代碼示例:
a = 20 b = 10 print a + b print a - b print a * b print a / b print a % b print a ** b print a // b
30 10 200 2 0 10240000000000 2
比較運算符又稱爲關係運算符,有如下幾種:
代碼示例:
a = 10;b = 20 print a == b print a != b print a <> b print a > b print a < b print a >= b print a <= b
False True True False True False True
Python中有如下幾種賦值運算符:
Python中有如下幾種位運算符:
Python中有如下幾種邏輯運算符:
三種邏輯運算分爲布爾型邏輯運算,和非布爾型邏輯運算。
布爾型的邏輯運算是正常的運算,很好理解。
非布爾型的邏輯運算須要遵循如下幾點:
代碼示例:
# number邏輯運算 x = 10; y = 20 print x and y print x or y print not x
20 10 False
# String的邏輯運算 x = "a"; y = "b" print x and y print x or y print not x
b a False
#String與Number的邏輯運算 x = 10 ; y = "a" print x and y print x or y
a 10
Python中提供了兩種成員運算符:
代碼示例:
# 字符串成員判斷 a = "x"; b = "xyz" print a in b print a not in b
True False
# 序列成員判斷 a = "x"; b = ["x", "y", "z"] print a in b print a not in b
True False
Python中提供了兩種身份運算符:
代碼示例:
a = 1;b = 1 print a is b print a is not b
True False
Python中運算符的優先級從高到低以下:
Python中的拷貝和賦值,針對對象,有不一樣層次的流程,具體以下。
直接賦值其實就是將對象的引用給到變量。
以下圖:
只是拷貝父對象,不會拷貝對象內部的子對象。
以下圖:
徹底拷貝父對象以及子對象。此時的拷貝,兩個對象徹底脫離了關係,是兩個獨立的對象,不會互相影響。
以下圖:
Python中提供了和其餘語言同樣的流程控制語句。其中包含:
Python中的條件判斷語句由if、elif、else組合搭配構成。其語法大體有以下兩種:
if condition: do somthing else: do somthing
if condition: do somthing elif condition: do somthing else: do somthing
在Python中,任意值均可做爲條件,全部類型的空值爲False,除空值以外其餘全爲True。
在程序編寫過程當中,常用斷言來判斷代碼邏輯執行的正確與否。
代碼示例:
age = 10 assert age = 20 # 不是預期的效果就會報錯,致使程序中斷,就能夠縮小程序出錯的範圍。
File "<ipython-input-7-cdbb8299e85a>", line 2 assert age = 20 # 不是預期的效果就會報錯,致使程序中斷,就能夠縮小程序出錯的範圍。 ^ SyntaxError: invalid syntax
Python中的循環語句包含兩種,分別是:
while 語句用於循環執行程序,即在某條件下,循環執行某段程序,以處理須要重複處理的相同任務。
有以下兩種語法:
while condition: do somthing
while condition: do somthing else: do somthing
判斷條件能夠是任何表達式,任何非零、或非空(null)的值均爲true。
while 語句時還有另外兩個重要的命令 continue,break 來跳過循環,continue 用於跳過該次循環,break 則是用於退出循環,此外"判斷條件"還能夠是個常值,表示循環一定成立。若是判斷條件永遠爲True,那麼循環將永遠執行下去,造成無線循環。
for循環能夠遍歷任何序列的項目,如一個列表或者一個字符串。
語法以下:
for interating_var in sequence: do somthing
for index in range: do somthing
代碼示例:
data = [1,2,3,4] for i in data: print i,
1 2 3 4
for i in range(10): print i,
0 1 2 3 4 5 6 7 8 9
在python中,for…else表示:for中的語句和普通的沒有區別,else中的語句會在循環正常執行完(即for不是經過break跳出而中斷的)的狀況下執行,while … else 也是同樣。
代碼示例:
for num in range(10,20): # 迭代 10 到 20 之間的數字 for i in range(2,num): # 根據因子迭代 if num % i == 0: # 肯定第一個因子 j = num / i # 計算第二個因子 print '%d 等於 %d * %d' % (num,i,j) break # 跳出當前循環 else: # 循環的 else 部分 print num, '是一個質數'
10 等於 2 * 5 11 是一個質數 12 等於 2 * 6 13 是一個質數 14 等於 2 * 7 15 等於 3 * 5 16 等於 2 * 8 17 是一個質數 18 等於 2 * 9 19 是一個質數
Python 語言容許在一個循環體裏面嵌入另外一個循環。
能夠在循環體內嵌套相同的循環體,如在for循環中嵌入for循環,在while循環中嵌入while循環;也能夠在循環體內嵌入其餘的循環體,如在while循環中能夠嵌入for循環,能夠在for循環中嵌入while循環。
代碼示例:
i = 2 while(i < 100): j = 2 while(j <= (i / j)): if not(i%j): break j = j + 1 if (j > i / j) : print i, " 是素數", i = i + 1 print "Good bye!"
2 是素數 3 是素數 5 是素數 7 是素數 11 是素數 13 是素數 17 是素數 19 是素數 23 是素數 29 是素數 31 是素數 37 是素數 41 是素數 43 是素數 47 是素數 53 是素數 59 是素數 61 是素數 67 是素數 71 是素數 73 是素數 79 是素數 83 是素數 89 是素數 97 是素數 Good bye!
# 乘法口訣表 for a in range(1,10): for b in range(1,a + 1): print "%d*%d=%d\t" % (b,a,b * a), print '\n'
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
Python break語句,就像在C語言中,打破了最小封閉for或while循環。
break語句用來終止循環語句,即循環條件沒有False條件或者序列還沒被徹底遞歸完,也會中止執行循環語句。
break語句用在while和for循環中。
若是使用嵌套循環,break語句將中止執行最深層的循環,並開始執行下一行代碼。
代碼示例:
for letter in 'Python': # 第一個實例 if letter == 'h': break print '當前字母 :', letter var = 10 # 第二個實例 while var > 0: print '當前變量值 :', var var = var -1 if var == 5: # 當變量 var 等於 5 時退出循環 break print "Good bye!"
當前字母 : P 當前字母 : y 當前字母 : t 當前變量值 : 10 當前變量值 : 9 當前變量值 : 8 當前變量值 : 7 當前變量值 : 6 Good bye!
Python continue 語句跳出本次循環,而break跳出整個循環。
continue 語句用來告訴Python跳過當前循環的剩餘語句,而後繼續進行下一輪循環。
continue語句用在while和for循環中。
代碼示例:
for letter in 'Python': # 第一個實例 if letter == 'h': continue print '當前字母 :', letter var = 10 # 第二個實例 while var > 0: var = var - 1 if var == 5: continue print '當前變量值 :', var print "Good bye!"
當前字母 : P 當前字母 : y 當前字母 : t 當前字母 : o 當前字母 : n 當前變量值 : 9 當前變量值 : 8 當前變量值 : 7 當前變量值 : 6 當前變量值 : 4 當前變量值 : 3 當前變量值 : 2 當前變量值 : 1 當前變量值 : 0 Good bye!
pass是空語句,是爲了保持程序結構的完整性。pass 不作任何事情,通常用作佔位語句。
代碼示例:
# 輸出 Python 的每一個字母 for letter in 'Python': if letter == 'h': pass print '這是 pass 塊' print '當前字母 :', letter print "Good bye!"
當前字母 : P 當前字母 : y 當前字母 : t 這是 pass 塊 當前字母 : h 當前字母 : o 當前字母 : n Good bye!
所謂推導式,就是一種從一個數據序列構件另外一個數據序列的方法。
代碼示例:
number = list(range(10)) number
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
代碼示例:
# 利用列表進行列表推導 li = [i * 10 for i in number] li
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
代碼示例:
# 利用列表進行字典key推導 di = {i : "b" for i in number} di
{0: 'b', 1: 'b', 2: 'b', 3: 'b', 4: 'b', 5: 'b', 6: 'b', 7: 'b', 8: 'b', 9: 'b'}
下一篇:Python的數據結構