防偽碼:忘情公子著
一、python介紹
python是一種面向對象的解釋型計算機程序設計語言,由荷蘭人Guido van Rossum于1989年發明,第一個公開發行版發行于1991年。
python語法簡潔明晰,特色之一是強制用空白符作為語句縮進。
python具有豐富和強大的庫,能夠把用其他語言制作的各種模塊(尤其是C/C++)很輕松地聯結在一起。此段引自百度百科。
python有很多的模塊能夠實現各種功能,在編程時能夠通過調用相應的模塊從而減少代碼量
二、編程語言介紹
在開始學習python前讓我們先來說說編程語言,因為python語言僅僅只是編程語言中的一種而已,了解了編程語言能讓我們學習python更加容易。
那么什么是編程語言?編程語言是用來干什么的?
在說這個之前讓我們先來想想,人類創造出計算機是為什么?人類創造出計算機是為了更好的解決人類所不能或很難解決的問題。由此,我們可以簡單的將人類需要解決的問題稱之為問題空間(或用戶空間),而將計算機稱之為解空間(解決問題)。我們可以將解空間中的解決問題的能力抽象映射為用戶空間中的解決方案。
編程語言是將計算機解決問題的能力給抽象出來的結果,將計算機解決問題的能力用人類所能理解的方式來描述,這就是編程語言。
有了編程語言以后,人類可以更方便的進行編程,但是新問題又來了,編程語言是偏向于人類的,也就是說編程語言是以人類所能理解的語言來描述的,通過編程語言來編寫的程序,計算機是無法理解、無法直接在計算機內核中執行的,所以此時需要一個橋梁來對接人類與計算機,把偏向于人類的編程語言編譯或者說翻譯成計算機所能識別的語言,這就是編譯器(或解釋器)的由來。
說到編譯器(解釋器)就不得不說下編程語言的分類,編程語言以是否編譯為分割可以簡單的分為兩類:靜態語言和動態語言。靜態語言在執行前必須先通過編譯器從頭到尾編譯一次,然后將編譯后的結果拿到cpu中運行;而動態語言則可以以類似同聲傳譯的方式將代碼直接通過解釋器解釋之后在cpu中運行,也就是給解釋器一條語句它解釋一下立馬在cpu中執行,再解釋一條再執行,而不必從頭到尾編譯一次后再在cpu中執行。所以可以這樣總結一下,在靜態語言中,人類與計算機之間的語言橋梁叫做編譯器,而在動態語言中,則稱之為解釋器。
編程語言以與用戶的距離來分割還可以分為低級語言和高級語言兩種,所謂低級語言就是更偏向于計算機的語言,如微碼編程語言,而高級語言則是更偏向于用戶的語言,python就是一種高級語言。低級語言與高級語言的區別是高級語言更接近于用戶,而不是指在性能上的高下,也不是指優越性上的高下。
三、python的應用領域
1、當做腳本語言來實現系統自動化管理;
2、當做控制語言:調用其它語言的接口來實現應用程序的開發;
3、有很多外部框架可以快速實現某些特定類型的應用程序的開發
Web網站框架:django、Tornado(輕量級、異步)、Flask(微型)、Web.py(簡單)等
數據采集:有好用的http庫,比如requests、urllib2等
科學計算:常用的模塊有Numpy、SciPy等
大數據分析:常用的模塊有Numpy、Pandas等
四、python程序的執行過程
python的源代碼表現為.py文件。
python程序在第一次執行時,自動通過Compiler模塊將源代碼編譯成.pyc后綴的bytecode(字節碼)文件,之后由python解釋器(PVM,Interpreter)讀取bytecode文件然后在處理器(processor)中運行。
pyc是一種二進制文件,是由py文件經過編譯后生成的文件,是一種bytecode,py文件變成pyc文件后,加載的速度有所提高,而且pyc是一種跨平臺的字節碼,是由python的虛擬機(PVM)來執行的。pyc的內容是跟python的版本相關的,不同版本編譯后的pyc文件是不同的,2.5編譯的pyc文件,2.4版本的python是無法執行的。
那么為什么需要pyc文件呢?
除了能夠提高加載速度外,為了防止源碼泄漏,是很有必要將源代碼編譯成pyc文件的,因為py文件可以直接看到源碼,而很多商業軟件是不可能公開源碼的。
需要注意的是,python自動通過Compiler模塊編譯源代碼之后的.pyc文件在程序執行完以后會自動刪除。如果需要手動生成.pyc文件,可以這樣操作:
[root@localhost test]# ls 1.py 2.py 1.py 2.py [root@localhost test]# cat 2.py import py_compile py_compile.compile('1.py') #將1.py編譯成1.pyc [root@localhost test]# python 2.py [root@localhost test]# ls 1.py* 1.py 1.pyc
pyo文件是優化編譯后的程序,python -O 源文件即可將源程序編譯為pyo文件:
[root@localhost test]# ls b.py* b.py [root@localhost test]# python -O -m py_compile b.py [root@localhost test]# ls b.py* b.py b.pyo
五、python的實現
CPython:原始、標準的實現方式
Jython:用于與Java語言集成的實現
IronPython:用于與.NET框架集成的實現
六、編寫、執行python代碼
可以通過兩種方式來執行python代碼:
1、交互式解釋器
2、python程序文件
交互式解釋器與python程序文件的利弊:
交互式模式下的程序執行完后難以再次運行,但是執行的代碼可以立馬看到效果;
將編寫的程序保存至文件(.py)中可以方便多次運行,但無法立馬看到執行效果。
python的程序文件分類:
包含一系列預編寫好的語句的程序文件稱作“模塊”;
能夠直接運行的模塊文件通常稱作腳本(即程序的頂層文件)
七、python的程序文件結構
python的源程序文件通常以.py為擴展名,例如,新建一個名為firstpycode.py的文件,內容如下所示:
[root@localhost test]# cat firstpycode.py #!/usr/bin/python import platform print platform.uname()
第一行為shebang,即執行腳本時通知內核要啟動的解釋器。
如果腳本文件中沒有這一行,那么它執行時會默認用當前shell(即:$SHELL環境變量)去解釋這個腳本;
如果#!之后的解釋程序是一個可執行文件,那么執行這個腳本時,它就會把文件名及其參數一起作為參數傳給這個解釋程序去執行。
如果#!之后的解釋程序不是一個可執行文件,那么指定的解釋程序會被忽略,轉而交給當前的SHELL去執行這個腳本。
如果#!指定的解釋程序不存在,則會報錯“bad interpreter: No such file or directory”
如果#!指定的解釋程序沒有可執行權限,則會報錯“bad interpreter: Permission denied”
注意:#!之后的解釋程序,必須寫絕對路徑,它是不會自動到$PATH中尋找解釋器的
第二行通過import導入一個python模塊platform。
第三行打印platform模塊的uname方法的執行結果。
python程序的組成:python程序可以分解成模塊、語句、表達式和對象
程序由模塊構成;
模塊包含語句;
語句包含表達式;
表達式建立并處理對象
表達式是“某事”,而語句是“做某事(即指令)”,例如,“3+4”是某事,而“print 3+4”則是做某事。
語句的特性:它們改變了事物,例如,賦值語句改變了變量,print語句改變了屏幕輸出等
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。