一.Python 簡介
1.1. python解釋器:
編寫Python代碼時,我們得到的是一個包含Python代碼的以.py為擴展名的文本文件。要運行代碼,就需要Python解釋器去執行.py文件?下載安裝Python就直接獲得了一個官方版本的解釋器:CPython。這個解釋器是用C語言開發的,所以叫CPython。在命令行下運行python就是啟動CPython解釋器。CPython是使用最廣的Python解釋器,Jython是運行在Java平臺上的Python解釋器,可以直接把Python代碼編譯成Java字節碼執行。Python的解釋器很多,但使用最廣泛的還是CPython。如果要和Java或.Net平臺交互,最好的辦法不是用Jython或IronPython,而是通過網絡調用來交互,確保各程序之間的獨立性。
1.2.編譯過程:
python.py——>python解釋器——>字節碼文件——>python解釋器——>二進制文件——>內存——>打印
1.3.編碼格式:
編碼回顧:Python中默認的編碼格式是 ASCII 格式,在沒修改編碼格式時無法正確打印漢字,所以在讀取中文時會報錯。解決方法為只要在文件開頭加入# -*- coding: UTF-8 -*-或者#coding=utf-8就行了
1.3.1:ASCII編碼:
最早只有127個字母被編碼到計算機里,也就是大小寫英文字母、數字和一些符號,這個編碼表被稱為ASCII編碼
1.3.2.Unicode編碼:
Unicode把所有語言都統一到一套編碼里,解決多種語言的編碼問題
1.3.3.UTF-8編碼:
編碼把一個Unicode字符根據不同的數字大小編碼成1-6個字節,常用的英文字母被編碼成1個字節,漢字通常是3個字節,
只有很生僻的字符才會被編碼成4-6個字節。如果你要傳輸的文本包含大量英文字符,用UTF-8編碼就能節省空間
1.4.語法基礎(以下所有demo都是基于python 3.6編寫)
Python與其他語言最大的區別就是,Python的代碼塊不使用大括號({})來控制類,函數以及其他邏輯判斷。python最具特色的就是用縮進來寫模塊。
IndentationError: unexpected indent錯誤是python編譯器是在告訴你,你的文件里格式不對了,可能是tab和空格沒對齊的問題",所有python對格式要求非常嚴格。
python中單行注釋采用 # 開頭。多行注釋使用三個單引號(''')或三個雙引號(""")。
eclipse中安裝python
:help->install new software->add->pydev ? ? ?\n
http://pydev.org/updates
在新建工程中創建一個python.py文件,即可開始編寫(eclipse還是非常強大,模糊輸入、編譯錯誤提醒、很大的提高編寫效率 )
Python可以在同一行中使用多條語句,語句之間使用分號(;)分割,像if、while、def和class這樣的復合語句,首行以關鍵字開始,以冒號( : )結束
附上一段程序代碼:
二.變量類型
2.1 變量賦值
? ? ? ? Python 中的變量賦值不需要類型聲明,用? = 來給變量賦值。變量在使用前都必須賦值,變量賦值以后該變量才會被創建
2.2 標準數據類型
? ? ? ? Python有五個標準的數據類型,用于存儲各種類型的數據。
2.2.1 ? ?Numbers(數字)支持四種不同的數字類型:
? ? ? ? ? ? ? int(有符號整型)
? ? ? ? ? ? ? long(長整型[也可以代表八進制和十六進制])
? ? ? ? ? ? ? float(浮點型)
? ? ? ? ? ? ? complex(復數)
2.2.2 ? ?String(字符串):示例代碼
2.2.3 ? ? List(列表)
? ? ? ? List(列表) 是 Python 中使用最頻繁的數據類型。列表可以完成大多數集合類的數據結構實現。它支持字符,數字,字符串甚至可以包含列表(所謂嵌套)。列表用[ ]標識。是python最通用的復合數據類型。
1.Python 提供列表處理的方法
1.1.cmp(list1,list2)??? 比較兩個列表的元素
1.2 .len(list)??? 列表元素個數
1.3.max(list)??? 返回列表元素最大值
1.4.min(list)??? 返回列表元素最小值
1.5.list(seq)??? 將元組轉換為列表
2.list 列表函數&方法
2.1. list.append(obj)??? 在列表末尾添加新的對象
2.2. list.count(obj)??? 統計某個元素在列表中出現的次數
2.3. list.extend(seq)??? 在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表)
2.4. list.index(obj)??? 從列表中找出某個值第一個匹配項的索引位置
2.5. list.insert(index, obj)??? 將對象插入列表
2.6 list.pop(obj=list[-1])??? 移除列表中的一個元素(默認最后一個元素),并且返回該元素的值
2.7? list.remove(obj)??? 移除列表中某個值的第一個匹配項
2.8? list.reverse()???? 反向列表中元素
2.9 list.sort([func])??? 對原列表進行排序
2.2.4 ? ?Tuple(元組)
? ? ? ? 元組是另一個數據類型,類似于List(列表)。元組用"()"標識。內部元素用逗號隔開。但是元組不能二次賦值,相當于只讀列表。
元組內置函數
Python元組包含了以下內置函數
1.1? cmp(tuple1, tuple2)??? 比較兩個元組元素。
1.2? len(tuple)??? 計算元組元素個數。
1.3? max(tuple)??? 返回元組中元素最大值。
1.4 min(tuple)??? 返回元組中元素最小值。
1.5 tuple(seq)??? 將列表轉換為元組。
2.2.5 ? ?Dictionary(字典)
? ? ? ? 字典(dictionary)是除列表以外python之中最靈活的內置數據結構類型。列表是有序的對象結合,字典是無序的對象集合。兩者之間的區別在于:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。字典用"{ }"標識。字典由索引(key)和它對應的值value組成。
Python字典內置函數&方法
1.1.? cmp(dict1, dict2)?? 比較兩個字典元素。
1.2 len(dict)??? 計算字典元素個數,即鍵的總數。
1.3 str(dict)?? 輸出字典可打印的字符串表示。
1.4 type(variable)? 返回輸入的變量類型,如果變量是字典就返回字典類型。
Python字典包含了以下內置方法:
2.1? radiansdict.clear()??? 刪除字典內所有元素
2.2? radiansdict.copy()??? 返回一個字典的淺復制
2.3? radiansdict.fromkeys()??? 創建一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應的初始值
2.4? radiansdict.get(key, default=None)??? 返回指定鍵的值,如果值不在字典中返回default值
2.5? radiansdict.has_key(key)??? 如果鍵在字典dict里返回true,否則返回false
2.6? radiansdict.items()??? 以列表返回可遍歷的(鍵, 值) 元組數組
2.7? radiansdict.keys()??? 以列表返回一個字典所有的鍵
2.8? radiansdict.setdefault(key, default=None)??? 和get()類似, 但如果鍵不存在于字典中,將會添加鍵并將值設為default
2.9? radiansdict.update(dict2)??? 把字典dict2的鍵/值對更新到dict里
2.10? radiansdict.values()??? 以列表返回字典中的所有值
dirct 通過特定key來查找數據,如果key 不存在,直接打印是會報錯的,有兩種方法判斷
1>.通過in判斷key是否存在:如果不存在,返回False
2>.通過dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:
? ? ? ? set和dict類似,也是一組key的集合,但不存儲value。由于key不能重復,所以,在set中,沒有重復的key。set可以看成數學意義上的無序和無重復元素的集合,因此,兩個set可以做數學意義上的交集、并集等操作:
? ? ? ??注意,dict內部存放的順序和key放入的順序是沒有關系的。和list比較,dict有以下幾個特點:查找和插入的速度極快,不會隨著key的增加而變慢;需要占用大量的內存,內存浪費多。而list相反:查找和插入的時間隨著元素的增加而增加;占用空間小,浪費內存很少。所以,dict是用空間來換取時間的一種方法。
2.3 運算
2.3.1? 布爾值:? ??
? ? ? ? 布爾值和布爾代數的表示完全一致,一個布爾值只有True、False兩種值布爾值可以用and(與運算)、or(或運算)和not(非運算)運算
2.3.2 ?空值:
? ? ? ? 空值是Python里一個特殊的值,用None表示。None不能理解為0,因為0是有意義的,而None是一個特殊的空值
2.3.3 ?變量:
? ? ? ? 變量的概念基本上和初中代數的方程變量是一致的,只是在計算機程序中,變量不僅可以是數字,還可以是任意數據類型。
2.3.4. ?除法運算 ?
? ? ? ? 1>:一種除法是 "/" :兩數相除取浮點數
? ? ? ? 2>:另一種是"http://" :兩數相除取整
? ? ? ? 注意:Python的整數沒有大小限制,而某些語言的整數根據其存儲長度是有大小限制的,例如Java對32位整數的范圍限制在-2147483648-2147483647。Python的浮點數也沒有大小限制,但是超出一定范圍就直接表示為inf(無限大)。
三.循環
Python的循環有兩種,一種是for...in循環,依次把list或tuple中的每個元素迭代出來,另一種是while循環
3.1 ? for x in .... 循環
3.2 ?while循環
? ? ? ? 要特別注意,不要濫用break和continue語句。break和continue會造成代碼執行邏輯分叉過多,容易出錯