本文針對零基礎讀者,不需要具備任何編程基礎,通過本文可以對Python有一個比較整體的了解,便于以后的深入學習打下良好基礎
本文試圖概述Python編程語言的所有關鍵點,并專注于絕對需要理解的最重要的主題。完全零基礎,你不需要具備任何先前的編程知識,并且可以非常快速地掌握所有必需的概念。
好,接下來我們開始。
1. Python簡介
Python是一種解釋型語言: 這意味著開發過程中沒有了編譯這個環節。類似于PHP和Perl語言
Python是交互式語言:你可以在一個Python提示符 >>> 后直接執行代碼
Python是面向對象語言: 這意味著Python支持面向對象的風格或代碼封裝在對象的編程技術
Python是初學者的語言:Python對初級程序員而言,是一種偉大的語言,它支持廣泛的應用程序開發,從簡單的文字處理到WWW瀏覽器再到游戲
2. 變量、數據類型及作用域
變量來源于數學,是計算機語言中能儲存計算結果或能表示值抽象概念。變量可以通過變量名訪問。在指令式語言中,變量通常是可變的。而在Python中,變量等同于names。
聲明變量和賦值(Python中也稱作binding,相比賦值,綁定這個詞可能更形象)操作:
myFirstVariable=1mySecondVariable=2myFirstVariable = "Hello You"
Python支持數據類型包括數字、字符串、集合、列表、元組、字典。數字支持整數、小數、浮點。長整型會有一個L的后綴,比如9999999999999L。字符串是被引號(單雙均可)包圍由數字、字母、下劃線組成的一串字符。
程序創建、訪問、改變一個變量時,都是在一個保存該變量的空間內進行,這個空間為命名空間,即作用域。Python作用域是靜態的,變量被賦值、創建的位置決定了其被訪問的范圍,即變量作用域由其所在位置決定。Python的作用域一共有4種,分別是:
L (Local) 局部作用域
E (Enclosing) 閉包函數外的函數中
G (Global) 全局作用域
B (Built-in) 內建作用域
以L –> E –> G –>B 的規則查找,即:在局部找不到,便會去局部外的局部找(例如閉包),再找不到就會去全局找,再者去內建中找。
3. 運算符
Python語言支持以下類型的運算符:
算術運算符:+;-;*;/;%(取模 - 返回除法的余數);**(冪 - 返回x的y次冪);//(取整除 - 返回商的整數部分,向下取整)
比較(關系)運算符:==(等于 - 比較對象是否相等);!=(不等于 - 比較兩個對象是否不相等);<>(不等于 - 比較兩個對象是否不相等);>(大于 - 返回x是否大于y);<(小于 - 返回x是否小于y);>=(大于等于- 返回x是否大于等于y);<=(小于等于 -返回x是否小于等于y)
賦值運算符:=(簡單的賦值運算符);+=(加法賦值運算符);-=(減法賦值運算符);*=(乘法賦值運算符);/=(除法賦值運算符);%=(取模賦值運算符);**=(冪賦值運算符);//=(取整除賦值運算符)
位運算符:&(按位與運算符);|(按位或運算符);^(按位異或運算符);~(按位取反運算符);<<(左移動運算符);>>(右移動運算符)
邏輯運算符:and(布爾"與");or(布爾"或");not(布爾"非")
成員運算符:in(如果在指定的序列中找到值返回 True,否則返回 False);not in(如果在指定的序列中沒有找到值返回 True,否則返回 False)
身份運算符:is(判斷兩個標識符是不是引用自一個對象);is not(判斷兩個標識符是不是引用自不同對象)
4. 注釋
單行注釋:
#this is a single line comment
多行注釋:
```thisisamultilinecomment```5. Pickling
將對象轉換為字符串并將字符串轉儲到文件中稱為酸洗。 反過來被稱為unpickling。
6. 函數
函數是組織好的,可重復使用的,用來實現單一,或相關聯功能的代碼段。函數能提高應用的模塊性,和代碼的重復利用率。
定義新函數:
defmy_new_function(): print('this is my new function')
函數調用
my_new_function()
查看字符串長度
len('hello')prints 57. 參數
定義函數的時候,把參數的名字和位置確定下來,函數的接口定義就完成了。函數的調用者只需知道如何傳遞正確的參數,以及函數將返回什么樣的值即可。
Python參數包括:位置參數;默認參數;可變參數;命名關鍵字參數;參數組合。
8. 模塊
Python 模塊(Module),是一個 Python 文件,以 .py 結尾,包含了 Python 對象定義和Python語句。模塊讓你能夠有邏輯地組織你的 Python 代碼段。把相關的代碼分配到一個模塊里能讓你的代碼更好用,更易懂。模塊能定義函數,類和變量,模塊里也能包含可執行的代碼。
導入模塊:
import module1[, module2[,... moduleN]]
調用模塊中的函數:
module1.function1
從某個模塊中導入一個指定的部分到當前命名空間中:
from modname import name1[, name2[, ... nameN]]
把一個模塊的所有內容全都導入到當前的命名空間:
from modname import *9. 包
模塊與包是任何大型程序的核心,就連Python安裝程序本身也是一個包。包是一個有層次的文件目錄結構,它定義了由n個模塊或n個子包組成的python應用程序執行環境,包含__init__.py文件和其它模塊或子包。
從包里調用模塊:
from packageroot.packagefolder.mod import my_object
PIP是Python的包管理器,未來你將會頻繁的用到他:
pip install package_name10. 條件語句
Python條件語句是通過一條或多條語句的執行結果(True或者False)來決定執行的代碼塊,也就是連吃瓜群眾都知道的if/else語句:
ifa=b:print'aisb'elifab:print'aisgreaterthanb'else: print 'a is different'
條件語句是可以嵌套的:
else:ifa=2:print'withinifofelse'else: print 'within else of else'
11. 循環語句
循環語句允許我們執行一個語句或語句組多次,一般包含兩種類型:While循環和For循環。
While循環,一直循環知道滿足某個條件終止:
while(input0):?do_something(input) input = input-1
While循環嵌套:
whileexpression:whileexpression:statement(s) statement(s)
For循環,一直循環知道次數用盡:
foriinrange(0,10)print i
For循環嵌套語法:
foriterating_varinsequence:foriterating_varinsequence:statements(s) statements(s)
循環控制語句可以更改語句執行的順序。Python支持以下循環控制語句:
break:在語句塊執行過程中終止循環,并且跳出整個循環
continue:在語句塊執行過程中終止當前循環,跳出該次循環,執行下一次循環
pass:pass是空語句,是為了保持程序結構的完整性
break語法:
foriinrange(0,10):if(i==5): break
whileTrue:x=get_value()if(x==1): break12. 遞歸
在函數內部,可以調用其他函數。如果一個函數在內部調用自身本身,這個函數就是遞歸函數。
舉個例子,我們來計算階乘n! = 1 x 2 x 3 x ... x n,用函數factorial(n)表示,可以看出:
factorial(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x n = factorial(n-1) x n
所以,factorial(n)可以表示為n x fact(n-1),只有n=1時需要特殊處理。
于是,factorial(n)用遞歸的方式寫出來就是:
deffactorial(n):ifn==0:return1else: return n * factorial(n-1)13. 框架與棧調用
Python代碼載入框架,框架位于棧中。
函數與參數和變量一起載入框架
框架會按照正確的執行順序依次載入棧中
棧中列出函數的執行步驟,在函數外聲明的變量存儲在main中
最后入棧的框架將最先執行
如果發生錯誤,可以使用回溯來獲取函數表
14、列表和庫
列表
列表是可以保存任何數據類型的值序列的數據結構。它們是可變的(可更新的)。
列表由整數索引。
字典
字典是編程世界中最重要的數據結構之一。它的功能是存儲鍵/值對對象,可以優化數據檢索功能。
15.編譯和鏈接
這些特征可用于使用以另一種語言編寫的文件,例如C或C ++等
將代碼寫入文件后,可以將文件放在Modules目錄中。
在Setup.local文件中添加一行非常重要,以確保可以加載新創建的文件。
16. 迭代器
迭代器可以遍歷集合,所有迭代器都包含__iter __()和__next __()函數
只需在列表,字典,字符串或集合上執行iter(x)即可。
如果我們在集合中有大量項目,而且不打算一次加載內存中的所有文件,那么迭代器就是很有用的。一些通用迭代器讓開發人員能夠實現函數式編程語言實例。
17.面向對象的設計:類
Python允許創建自定義類型。由用戶定義的類型稱為類。這些類可以具有自定義屬性和函數。
面向對象的設計允許程序員將其業務模型定義為具有所需屬性和功能的對象。
屬性也可以引用另一個對象。
Python類可以引用其他類。
Python支持封裝,即實例函數和變量。
Python支持繼承。
18.面向對象的設計:繼承
Python支持對象的繼承。因此,對象可以繼承其父級對象的函數和屬性。
繼承的類可以在其函數中包含不同的邏輯。
如果一個類ParentClass有兩個子類:SubClass1,SubClass2
因此,兩個子類都將包含函數my_function()。
繼承可以鼓勵代碼重用和維護。
一些常見問題指引
我為什么要使用Python?
簡單的編碼和學習
面向對象編程語言
偉大的分析和ML包
更快地開發并將我的解決方案推向市場
提供內置內存管理功能
提供巨大的社區支持和應用程序
無需編譯,因為它是一種解釋性語言
動態輸入 - 無需聲明變量
如何讓Python快速運行?
Python是一種高級語言,不適合訪問系統級程序或硬件。
此外,Python不適用于跨平臺應用程序。事實上,Python是一種動態類型的解釋語言,與低級語言相比,它的優化和運行速度較慢。
實現基于C語言的擴展。
使用Spark或Hadoop創建多進程
利用Cython,Numba和PyPy來加速Python代碼,或用C語言編寫代碼,再像在NumPy中那樣在Python中公開
現在有哪些常用的IDE?
Spyder,PyCharm。另外,使用各種筆記本電腦, Jupyter
有哪些頂級Python框架和包?
Python有大量必備的包:
PyUnit(單元測試),PyDoc(文檔),SciPy(algebera和數字),Pandas(數據管理),Sci-Kit學習(ML和數據科學),Tensorflow(AI),Numpy(數組和數字),BeautifulSoap(web)頁面報廢),Flask(微框架),Pyramid(企業應用程序),Django(UI MVVM),urllib(網頁抓取),Tkinter(GUI),mock(模擬庫),PyChecker(bug檢測器),Pylint(模塊代碼分析))
Python和R可以合并嗎?
R中編寫了大量豐富的統計庫
可以使用Rpy2 python包或在Juputer中使用beaker筆記本或IR內核在Python中執行R代碼。
有沒有辦法在運行Python之前捕獲錯誤?
在運行代碼之前,我們可以使用PyChecker和PyLink來捕獲錯誤。
-
編程語言
+關注
關注
10文章
1945瀏覽量
34740 -
python
+關注
關注
56文章
4797瀏覽量
84690
原文標題:無需編程基礎,Python從入門到進階大法
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論