最近研究了一下Python,名不虛傳,確實挺精彩。html
學習一門新的語言,我認爲從入門到精通的作法是:下SDK、裝IDE、練教程、結合工做應用、不斷踩坑進階、梳理總結python
1.下SDK(2.7.15)windows
下載地址:https://www.python.org/downloads/release/python-2715/運維
若是沒有歷史包袱,建議用3.X機器學習
2.裝IDE(PyCharm)函數
下載地址:https://www.jetbrains.com/pycharm/download/#section=windows工具
建議下載專業版,本身百度破解學習
JetBrains作的一系列工具都很好用編碼
3.練教程spa
菜鳥教程比較適合菜鳥入門:http://www.runoob.com/python/python-tutorial.html
標識符區分大小寫,能夠包括英文、數字以及下劃線(_),但不能以數字開頭(爲何不少語言的標識符都不能以數字開頭呢?)
用縮進來寫模塊,縮進的空白數量是可變的,可是全部代碼塊語句必須包含相同的縮進空白數量,對縮進要求很是嚴格
單行註釋採用 # 開頭,多行註釋使用三個單引號(''')或三個雙引號(""")
函數之間或類的方法之間用空行分隔,在於分隔兩段不一樣功能或含義的代碼,便於往後代碼的維護或重構
Python有5個標準的數據類型,全部數據類型都是類,能夠經過 type() 查看該變量的數據類型
5.Dictionary(字典)
is 用於判斷兩個變量引用對象是否爲同一個, == 用於判斷引用變量的值是否相等,相似傳址與傳值,可使用id()函數(用於獲取對象的內存地址)進行判斷
不支持 switch 語句,因此多個條件判斷,只能用 elif 來實現
pass 通常用於佔位,好比def了一個函數,只有一行:pass
絕對值函數:
內置的time、calendar模塊用於處理時間和日曆,datetime模塊也比較好用
函數代碼塊以 def 關鍵詞開頭,後接函數標識符名稱和圓括號(),函數內容以冒號起始,而且縮進,函數最後可使用return設置返回值,也能夠沒有返回值
若是要給函數內的全局變量賦值,必須使用 global 語句
導入其餘模塊使用import,和Java相似,C#用使用using
import 導入模塊,每次使用模塊中的函數都要是定是哪一個模塊:模塊.函數
from…import * 導入模塊,每次使用模塊中的函數,直接使用函數就能夠了,由於已經知道該函數是那個模塊中的了
推薦使用 import 語句,避免使用 from … import,由於這樣可使你的程序更加易讀,也能夠避免名稱衝突
設置環境變量:set PYTHONPATH=c:\python27\lib;
包就是文件夾,但該文件夾下必須存在 __init__.py(用於標識當前文件夾是一個包) 文件, 該文件的內容能夠爲空
異常使用try...except..else...finally,拋出異常使用raise,而不像其餘語言同樣用throw
try: code #須要判斷是否會拋出異常的代碼,若是沒有異常處理,python會直接中止執行程序 except: #這裏會捕捉到上面代碼中的異常,並根據異常拋出異常處理信息 #except ExceptionName,args: #同時也能夠接受異常名稱和參數,針對不一樣形式的異常作處理 code #這裏執行異常處理的相關代碼,打印輸出等 else: #若是沒有異常則執行else code #try部分被正常執行後執行的代碼 finally: code #退出try語句塊總會執行的程序
4.結合工做應用
運維、爬蟲、機器學習
5.不斷踩坑進階
5.1 中文編碼
若是中文顯示亂碼,須要在頭部指定編碼
在文件開頭加入 # -*- coding: UTF-8 -*- 或 #coding=utf-8
【注】Python3默認使用UTF-8編碼,不須要進行處理,因此後來者居上,是有道理的
5.2 整型池
Python 中會事先建立一個小型的整形池,範圍爲 [-5,256],爲這些整形開闢好內存空間,當代碼中定義該範圍內的整形時,不會再從新分配內存地址,因此用is判斷兩個該範圍的數時,返回值是True
5.4 TRUE與FALSE
元素除了是 0、空、FALSE 外都算 TRUE
6.梳理總結
6.1 網上看到的一個基礎語法圖
6.2 保留字符
6.3 內置函數