最近研究了一下Python,名不虛傳,確實挺精彩。
學習一門新的語言,我認為從入門到精通的做法是:下SDK、裝IDE、練教程、結合工作應用、不斷踩坑進階、梳理總結
1.下SDK(2.7.15)
下載地址:https://www.python.org/downloads/release/python-2715/
如果沒有歷史包袱,建議用3.X
2.裝IDE(PyCharm)
下載地址:https://www.jetbrains.com/pycharm/download/#section=windows
建議下載專業版,自己百度破解
JetBrains做的一系列工具都很好用
3.練教程
菜鳥教程比較適合菜鳥入門:http://www.runoob.com/python/python-tutorial.html
標識符區分大小寫,可以包括英文、數字以及下划線(_),但不能以數字開頭(為什么很多語言的標識符都不能以數字開頭呢?)
用縮進來寫模塊,縮進的空白數量是可變的,但是所有代碼塊語句必須包含相同的縮進空白數量,對縮進要求非常嚴格
單行注釋采用 # 開頭,多行注釋使用三個單引號(''')或三個雙引號(""")
函數之間或類的方法之間用空行分隔,在於分隔兩段不同功能或含義的代碼,便於日后代碼的維護或重構
Python有5個標准的數據類型,所有數據類型都是類,可以通過 type() 查看該變量的數據類型
- Numbers(數字)
- 數值類型不允許改變,如果改變 Number 數據類型的值,將重新分配內存空間
- int(有符號整型)
- long(長整型[也可以代表八進制和十六進制])
- float(浮點型)
- complex(復數)
- String(字符串)
- 最常用的數據類型,一些字符串內置函數需要根據應用情況進行掌握
- List(列表)
- 用[]表示,允許更新
- Tuple(元組)
-
- 用()表示,不允許更新,相當於只讀列表
- 只包含一個元素時,需要在元素后面添加逗號
5.Dictionary(字典)
-
- 用{}表示
- 每個鍵值 key=>value 對用冒號 : 分割,每個鍵值對之間用逗號 , 分割
- 鍵必須是不可變的,如字符串,數字或元組
- 創建時如果同一個鍵被賦值兩次,后一個值會被記住
- 用get 方法來取鍵值,如果不存在也不會報錯
is 用於判斷兩個變量引用對象是否為同一個, == 用於判斷引用變量的值是否相等,類似傳址與傳值,可以使用id()函數(用於獲取對象的內存地址)進行判斷
不支持 switch 語句,所以多個條件判斷,只能用 elif 來實現
pass 一般用於占位,比如def了一個函數,只有一行:pass
絕對值函數:
- 1、abs()是一個內置函數,而fabs()在math模塊中定義的。
- 2、fabs()函數只適用於float和integer類型,而 abs() 也適用於復數。
內置的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 內置函數