在 Python 裏,標識符由字母、數字、下劃線組成。python
在 Python 中,全部標識符能夠包括英文、數字以及下劃線(_),但不能以數字開頭。編程
Python 中的標識符是區分大小寫的。python3.x
如下劃線開頭的標識符是有特殊意義的。數據結構
以雙下劃線開頭的 __foo 表明類的私有成員,__foo(self)表明類的私有方法,不能直接從外部調用,需經過類裏的其餘方法調用。編程語言
以雙下劃線開頭和結尾的 __foo__ 表明 Python 裏特殊方法專用的標識,如 __init__() 表明類的構造函數。函數
下面的列表顯示了在Python中的保留字。這些保留字不能用做常數或變數,或任何其餘標識符名稱。oop
全部 Python 的關鍵字只包含小寫字母。學習
and | exec | not |
assert | finally | or |
break | for | pass |
class | from | |
continue | global | raise |
def | if | return |
del | import | try |
elif | in | while |
else | is | with |
except | lambda | yield |
學習 Python 與其餘語言最大的區別就是,Python 的代碼塊不使用大括號 {} 來控制類,函數以及其餘邏輯判斷。優化
python 最具特點的就是用縮進來寫模塊。this
縮進的空白數量是可變的,可是全部代碼塊語句必須包含相同的縮進空白數量,這個必須嚴格執行。以下所示:
1 if True: 2 print ("True") 3 else: 4 print ("False")
如下代碼將會執行錯誤:
1 #!/user/bin/env ptyhon 2 # -*- coding:utf-8 -*- 3 # Author: VisonWong 4 5 if True: 6 print("Answer") 7 print("True") 8 else: 9 print("Answer") 10 # 沒有嚴格縮進,在執行時會報錯 11 print("False")
執行以上代碼,會出現以下錯誤提醒:
1 E:\Python\PythonLearing\venv\Scripts\python.exe E:/Python/PythonLearing/test.py 2 File "E:/Python/PythonLearing/test.py", line 11 3 print("False") 4 ^ 5 IndentationError: unindent does not match any outer indentation level
IndentationError: unindent does not match any outer indentation level。
錯誤代表,你使用的縮進方式不一致,有的是 tab 鍵縮進,有的是空格縮進,改成一致便可。
若是是 IndentationError: unexpected indent 錯誤, 則 python 編譯器是在告訴你"Hi,老兄,你的文件裏格式不對了,多是tab和空格沒對齊的問題",全部 python 對格式要求很是嚴格。
所以,在 Python 的代碼塊中必須使用相同數目的行首縮進數。
建議你在每一個縮進層次使用 單個製表符 或 兩個空格 或 四個空格 , 切記不能混用。
Python語句中通常以新行做爲語句的結束符。
可是咱們可使用斜槓( \)將一行的語句分爲多行顯示,以下所示:
1 total = item_one + \ 2 item_two + \ 3 item_three
語句中包含 [], {} 或 () 括號就不須要使用多行鏈接符。以下實例:
1 days = ['Monday', 'Tuesday', 'Wednesday', 2 'Thursday', 'Friday']
Python 可使用引號( ' )、雙引號( " )、三引號( ''' 或 """ ) 來表示字符串,引號的開始與結束必須的相同類型的。
其中三引號能夠由多行組成,編寫多行文本的快捷語法,經常使用於文檔字符串,在文件的特定地點,被當作註釋。
1 word = 'word' 2 sentence = "這是一個句子。" 3 paragraph = """這是一個段落。 4 包含了多個語句"""
python中單行註釋採用 # 開頭。
1 #!/user/bin/env ptyhon 2 # -*- coding:utf-8 -*- 3 # Author: VisonWong 4 5 # 第一個註釋 6 print ("Hello, Python!"); # 第二個註釋
輸出結果:
1 Hello, Python!
python 中多行註釋使用三個單引號(''')或三個雙引號(""")。
1 #!/user/bin/env ptyhon 2 # -*- coding:utf-8 -*- 3 # Author: VisonWong 4 5 6 ''' 7 這是多行註釋,使用單引號。 8 這是多行註釋,使用單引號。 9 這是多行註釋,使用單引號。 10 ''' 11 12 """ 13 這是多行註釋,使用雙引號。 14 這是多行註釋,使用雙引號。 15 這是多行註釋,使用雙引號。 16 """
print 默認輸出是換行的,若是要實現不換行須要在變量末尾加上 ' end=' 。
1 #!/user/bin/env ptyhon 2 # -*- coding:utf-8 -*- 3 # Author: VisonWong 4 5 x="a" 6 y="b" 7 # 換行輸出 8 print(x) 9 print(y) 10 11 print ('---------') 12 # 不換行輸出 13 print(x, end = ' ') 14 print(y, end = ' ') 15 16 17 # a 18 # b 19 # --------- 20 # a b
格式化方法,能夠用format實現格式化。
1 #!/user/bin/env ptyhon 2 # -*- coding:utf-8 -*- 3 # Author: VisonWong 4 5 age = 20 6 name = 'Swaroop' 7 print('{0} was {1} years old when he wrote this book'.format(name, age)) 8 print('Why is {0} playing with that python?'.format(name)) 9 10 11 # Swaroop was 20 years old when he wrote this book 12 # Why is Swaroop playing with that python?
格式化方法,也可使用%s和%d實現,%s對應字符變量,%d對應數字變量。另外還有%r,打印變量原始類型,通常做調試用。
1 #!/user/bin/env ptyhon 2 # -*- coding:utf-8 -*- 3 # Author: VisonWong 4 5 age = 20 6 name = 'Swaroop' 7 print('%s was %d years old when he wrote this book' %(name,age) ) 8 print('Why is %s playing with that python?' %name) 9 10 11 # Swaroop was 20 years old when he wrote this book 12 # Why is Swaroop playing with that python?
① 聲明一個變量name,變量name的值爲:「wcw」
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 name = "wcw"
② 變量命名的規則
1 變量定義的規則: 2 3 變量名只能是 字母、數字或下劃線的任意組合 4 變量名的第一個字符不能是數字 5 如下關鍵字不能聲明爲變量名 6 ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 7 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
③ 擴展 (給變量name1賦值Alex li,變量name2賦值爲變量name1,name1重賦值Jack Chen,此時name2的值爲多少?)
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #-Author-Lian 4 name1 = "Alex Li" 5 6 name2 = name1 7 print(name1, name2) 8 9 name1 = "Jack Chen" 10 11 print("What is the value of name2 now?")
由圖所示,因此最後name1的值爲Jack Chen,name2的值爲Alex li。
python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill)
ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其餘西歐語言。
其最多隻能用 8 位來表示(一個字節),即:2**8 = 256,因此,ASCII碼最多隻能表示 256 個符號。
顯然ASCII碼沒法將世界上的各類文字和符號所有表示,因此,就須要新出一種能夠表明全部字符和符號的編碼,即:Unicode。
Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼。
Unicode 是爲了解決傳統的字符編碼方案的侷限而產生的,它爲每種語言中的每一個字符設定了統一而且惟一的二進制編碼。
規定全部的字符和符號最少由 16 位來表示(2個字節),即:2 **16 = 65536。注:此處說的的是最少2個字節,可能更多。
UTF-8,是對Unicode編碼的壓縮和優化,他再也不使用最少使用2個字節,而是將全部的字符和符號進行分類:ascii碼中的內容用1個字節保存、歐洲的字符用2個字節保存,東亞的字符用3個字節保存...
因此,python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill),若是是以下代碼的話:
報錯:ascii碼沒法表示中文
1 #!/usr/bin/env python 2 3 print "你好,世界"
改正:應該顯示的告訴python解釋器,用什麼編碼來執行源代碼,即:
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 print "你好,世界"
注:python2.x版本,默認支持的字符編碼爲ASCll python3.x版本,默認支持的是Unicode,不用聲明字符編碼能夠直接顯示中文。
在內存中存儲的數據能夠有多種類型。
例如,一我的的年齡能夠用數字來存儲,他的名字能夠用字符來存儲。
Python 定義了一些標準類型,用於存儲各類類型的數據。
Python有五個標準的數據類型:
一、Numbers(數字)
二、String(字符串)
三、List(列表)
四、Tuple(元組)
五、Dictionary(字典)
Python數字
數字數據類型用於存儲數值。
他們是不可改變的數據類型,這意味着改變數字數據類型會分配一個新的對象。
當你指定一個值時,Number對象就會被建立:
1 var1 = 1 2 var2 = 10
也可使用del語句刪除一些對象的引用。
del語句的語法是:
1 del var1[,var2[,var3[....,varN]]]]
Python支持四種不一樣的數字類型:
int(有符號整型)
long(長整型[也能夠表明八進制和十六進制])
float(浮點型)
complex(複數)
實例
一些數值類型的實例:
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.3e+18 | .876j |
-0490 | 535633629843L | -90. | -.6545+0J |
-0x260 | -052318172735L | -32.54e100 | 3e+26J |
0x69 | -4721885298529L | 70.2E-12 | 4.53e-7j |
長整型也可使用小寫 l,可是仍是建議您使用大寫 L,避免與數字 1 混淆。Python使用 L 來顯示長整型。
Python 還支持複數,複數由實數部分和虛數部分構成,能夠用 a + bj,或者 complex(a,b) 表示, 複數的實部 a 和虛部 b 都是浮點型。
Python字符串
字符串或串(String)是由數字、字母、下劃線組成的一串字符。
通常記爲 :
1 s="a1a2···an"(n>=0)
它是編程語言中表示文本的數據類型。
python的字串列表有2種取值順序:
List(列表) 是 Python 中使用最頻繁的數據類型。
列表能夠完成大多數集合類的數據結構實現。它支持字符,數字,字符串甚至能夠包含列表(即嵌套)。
列表用 [ ] 標識,是 python 最通用的複合數據類型。
元組是另外一個數據類型,相似於List(列表)。
元組用"()"標識。內部元素用逗號隔開。可是元組不能二次賦值,至關於只讀列表。
字典(dictionary)是除列表之外python之中最靈活的內置數據結構類型。列表是有序的對象集合,字典是無序的對象集合。
二者之間的區別在於:字典當中的元素是經過鍵來存取的,而不是經過偏移存取。
字典用"{ }"標識。字典由索引(key)和它對應的值value組成。