1.軟體質量
1.python程式有很好的可讀性,一致性和軟體質量。
2.python支援軟體開發的高階重用機制,例如物件導向等
2.提高開發者效率
1.python作為開發工具均以付出更少的精力完成更多的任務而脫穎而出。
3.可以定義為物件導向的指令碼語言。
4.有缺點,是不夠快
純python**的執行速度介於傳統的編譯語言和傳統的解釋語言之間.
5.免費可移植
6.簡單可以和其他語言混合程式設計1.python是一門程式語言,同時,python也是乙個名為直譯器(shell)的軟體包(實際上,直譯器是**與硬體之間的軟體邏輯層),也就是說,我們常常說python是一門程式語言,但是同時,我們寫好了python**執行的時候,解釋**的直譯器的名字也是叫python,語言和乙個直譯器這個程式之間雖然叫乙個名字,但是意義不要弄混淆了
2.python安裝在機器上之後,它包含了一些最小化的元件:乙個直譯器(shell)和支援的庫.無論怎樣,編寫的python**需要在直譯器中執行.
3.從程式設計師的角度來說,乙個python程式僅僅是乙個包含python語句的文字檔案.
4.在本質上,python程式的執行有下面步驟
1.位元組碼編譯
程式執行的時候,python內部(對使用者隱藏)會先將源**編譯成所謂的位元組碼的形式.
要是python程序在機器上面有寫入許可權.那麼他將程式的位元組碼儲存為乙個以.pyc為副檔名的檔案.程式執行後,能夠在相應的工作檔案目錄下面看到這些檔案.下一次執行程式的時候,要是以前的源**沒有修改過的話,python會自動載入.pyc檔案就不會再重新編譯一次原始檔.
要是python程序沒有寫入許可權.那麼程式還是可以執行.位元組碼在記憶體中生成.並且在程式結束後丟棄.
位元組碼檔案具有加速的作用.所以最好是保證在大型程式中能夠寫入;同樣,位元組碼也是分發程式的方法之一:要是python找到的都是.pyc檔案,那麼他也很樂意執行這個程式.
2.python虛擬機器
一旦程式編譯成為位元組碼(或者位元組碼從已經存在的.pyc檔案載入),之後的位元組碼傳送到通常稱為python虛擬機器pvm上來執行.
pvm是python的執行引擎.他通常表現為python系統的一部分.並且他是實際執行指令碼的元件.(但是事實上,這些都是對使用者隱藏的.)
5.執行**的方式
1.互動模式
互動提示模式是根據使用者的輸入執行**並且響應結果.但是他不會把**儲存到乙個檔案之中.在windows或者linux的控制台下面輸入python,就進入了互動模式(首先要安裝了python)
當你對於一段python**的執行有任何疑問的時候,馬上開啟互動命令列並且實驗**,看看會發生什麼.注意:在互動模式下只能夠輸入python的命令而不能夠輸入系統的命令.互動模式下很多結果的顯示不需要列印語句.但是指令碼中的列印語句需要留意提示符的變換和復合語句.在互動模式中,用乙個空行結束復合語句.意味著簡單的語句下只要乙個回車會直接執行.而在復合語句下要按兩下空格)多行**最好的處理方式就是先複製到乙個.py檔案中.然後執行這個檔案.不要直接把很多行的語句直接複製到互動模式下面執行.
2.指令碼模式
1.普通指令碼(不帶#!)
寫乙個檔案一字尾.py結尾
執行方式:python +檔名
2.可執行指令碼(帶#!)
第一行是特定的: #!後面加上直譯器的路徑(不知道路徑的,可以通過which python命令來看一下直譯器的路勁在**)檔案擁有可執行許可權(要是沒有執行許可權,用chmod +x 檔名為其賦予執行許可權),那麼這個指令碼就能夠直接執行了。
3.unix env小技巧
我們知道,linux下面有乙個env程式.可以通過系統的搜尋路徑的設定,定位某個東西.(要是不知道env在**,用命令which env)
因為#!後面跟的是直譯器的路徑,我們經常直接在後面加上直譯器的路徑,但是要是把這個程式原封不動的發給別人,要是別人的機器上的python直譯器的路徑不是我們寫上去的路徑,那麼這個檔案將不能夠被正確執行.
所以,env的技巧將能夠搜尋python的位置,就算機器裝python的位置是不同的也沒有關係.
加上許可權之後直接執行就行了.
1.概念
1.每乙個以副檔名.py結尾的python源**檔案都是乙個模組,其他的檔案能夠通過匯入乙個模組讀取這個模組的內容.(匯入的本質,就是載入另乙個檔案,並且能夠讀取哪個檔案的內容.)
2.乙個模組的內容通過這樣的屬性能夠被外部世界使用.
3.大的程式往往是以多個模組的形式出現.並且匯入了其他模組檔案的工具.其中乙個模組檔案設計成主檔案,也就是頂層檔案,通過它,能夠執行整個程式.
2.操作
1.載入乙個模組並且執行這個模組(***import語句)*
1.載入的時候加上模組名字就行,但是千萬不要加上副檔名.py
如上圖,載入第一次的時候自動執行,然後載入第二次的時候就不執行了.因為匯入在python中是開銷很大的操作,系統預設只會匯入一次,第一次匯入後就不會再次匯入相同的了.(即使該檔案被改變.,…)
2.重新載入乙個模組(reload()函式)
1.reload是乙個函式,在imp標準庫模組中(python3.x)
2.reload()函式希望獲得的引數是乙個已經載入了的模組物件的名稱.
注意:
1.避免用import和reload啟動程式
3.模組顯要特性:屬性
從巨集觀的角度來說,模組扮演了乙個工具庫的角色.從一般意義來說,模組往往就是變數名的封裝,被認作是命名空間.在乙個包中的變數名就是所謂的屬性.典型的應用中,匯入則得到了模組檔案中在頂層所定義的所有變數名.
例子1.建立乙個檔案a.py
2.可以通過兩種不同的方法獲得這個模組中的leo屬性
①import將模組作為乙個整體載入
要使用的話:模組.屬性名
使用的話:直接用就行
注意:無論是使用import還是from的來進行匯入,模組檔案都會被執行.並且匯入的元件在頂層檔案中得到了變數名的讀取權.
4.使用exec執行模組檔案
1.exec(open(「完整模組名」).read())內建函式呼叫
2.執行該模組且不載入該模組,相當於在該處貼上了該模組的**,也是因為如此,有覆蓋前面定義過的同名變數的危險.(所以自己小心就行)
Python 從入門到放棄(一)
列表 list 和元組 tuple python中有6中內建序列 sequence list,tuple,字串,unicode字串,buffer,xrange。序列和對映是兩種主要的容器 container 序列包括 list 和 tuple 對映包括 dict set 即不是序列又不是對映 序列操...
python 從入門到放棄
本人所有關於python的內容均為學習期間的整理的筆記,希望可以給學習者帶來些許幫助!不過一入it深似海!準備入行者請做好充分的心理準備!計算機的知識跟新迭代速度很快,不學習就會被淘汰!如果你打算入行然後找乙份安穩的工作安度餘生,那麼我還是建議去考公務員吧!這個行業可能並不適合你!有不少的人可能都覺...
Python 從入門到放棄(三)
2011 12 11 mon 13 58 直接建立 phonebook phonebook out 224 phonebook dict alice 1234 bob 2345 注意關鍵字不能是expression,不是 alice 而是alice phonebook out 228 或者通過鍵值對...