python基礎-個人盲點

python基礎

#編程語言分類
##一、編譯型與解釋型
編譯器是把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行時計算機可以直接以機器語言來運行此程序,速度很快; 而解釋器則是隻在執行程序時,才一條一條的解釋成機器語言給計算機來執行,所以運行速度是不如編譯後的程序運行的快的. 這是因爲計算機不能直接認識並執行我們寫的語句,它只能認識機器語言(是二進制的形式)
編譯型
優點:編譯器一般會有預編譯的過程對代碼進行優化。因爲編譯只做一次,運行時不需要編譯,所以編譯型語言的程序執行效率高。可以脫離語言環境獨立運行。
缺點:編譯之後如果需要修改就需要整個模塊重新編譯。編譯的時候根據對應的運行環境生成機器碼,不同的操作系統之間移植就會有問題,需要根據運行的操作系統環境編譯不同的可執行文件。

解釋型
優點:有良好的平臺兼容性,在任何環境中都可以運行,前提是安裝瞭解釋器(虛擬機)。靈活,修改代碼的時候直接修改就可以,可以快速部署,不用停機維護。
缺點:每次運行的時候都要解釋一遍,性能上不如編譯型語言。

二、動態語言和靜態語言
通常我們所說的動態語言、靜態語言是指動態類型語言和靜態類型語言。

(1)動態類型語言:動態類型語言是指在運行期間纔去做數據類型檢查的語言,也就是說,在用動態類型的語言編程時,永遠也不用給任何變量指定數據類型,該語言會在你第一次賦值給變量時,在內部將數據類型記錄下來。Python和Ruby就是一種典型的動態類型語言,其他的各種腳本語言如VBScript也多少屬於動態類型語言。

(2)靜態類型語言:靜態類型語言與動態類型語言剛好相反,它的數據類型是在編譯其間檢查的,也就是說在寫程序時要聲明所有變量的數據類型,C/C++是靜態類型語言的典型代表,其他的靜態類型語言還有C#、JAVA等。

三、強類型定義語言和弱類型定義語言

(1)強類型定義語言:強制數據類型定義的語言。也就是說,一旦一個變量被指定了某個數據類型,如果不經過強制轉換,那麼它就永遠是這個數據類型了。舉個例子:如果你定義了一個整型變量a,那麼程序根本不可能將a當作字符串類型處理。強類型定義語言是類型安全的語言。

(2)弱類型定義語言:數據類型可以被忽略的語言。它與強類型定義語言相反, 一個變量可以賦不同數據類型的值。

強類型定義語言在速度上可能略遜色於弱類型定義語言,但是強類型定義語言帶來的嚴謹性能夠有效的避免許多錯誤。另外,“這門語言是不是動態語言”與“這門語言是否類型安全”之間是完全沒有聯繫的!
例如:Python是動態語言,是強類型定義語言(類型安全的語言); VBScript是動態語言,是弱類型定義語言(類型不安全的語言); JAVA是靜態語言,是強類型定義語言(類型安全的語言)。

通過上面這些介紹,我們可以得出,python是一門動態解釋性的強類型定義語言。

#內容編碼
python2解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill),而python3對內容進行編碼的默認爲utf-8。ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言,其最多隻能用 8 位來表示(一個字節),即:2**8 = 256,所以,ASCII碼最多隻能表示 256 個符號。
顯然ASCII碼無法將世界上的各種文字和符號全部表示,所以,就需要新出一種可以代表所有字符和符號的編碼,即:Unicode
Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼。Unicode 是爲了解決傳統的字符編碼方案的侷限而產生的,它爲每種語言中的每個字符設定了統一併且唯一的二進制編碼,規定雖有的字符和符號最少由 16 位來表示(2個字節),即:2 **16 = 65536,
注:此處說的的是最少2個字節,可能更多
UTF-8,是對Unicode編碼的壓縮和優化,他不再使用最少使用2個字節,而是將所有的字符和符號進行分類:ascii碼中的內容用1個字節保存、歐洲的字符用2個字節保存,東亞的字符用3個字節保存…
所以,python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill

在這裏插入圖片描述
在這裏插入圖片描述
針對邏輯運算的進一步研究:
1,在沒有()的情況下not 優先級高於 and,and優先級高於or,即優先級關係爲( )>not>and>or,同一優先級從左往右計算。
print(2 or 1 < 3 and 2)
print(1 > 2 and 3 or 4 and 3 < 2)
print(2 > 3 and 3 < 4 or 5 > 6 or 7 and 8 > 6 or 9 < 11)
print(2 or 3 < 4 or 3 > 4 and 4 or 4 > 6 and 7 or 7 < 8)

#循環
while … else …
與其它語言else 一般只與if 搭配不同,在Python 中還有個while …else 語句
while 後面的else 作用是指,當while 循環正常執行完,中間沒有被break 中止的話,就會執行else後面的語句
count = 0
while count <= 5 :
count += 1
print(“Loop”,count)

else:
print(“循環正常執行完啦”)
print("-----out of while loop ------")

如果執行過程中被break啦,就不會執行else的語句啦
count = 0
while count <= 5 :
count += 1
if count == 3:break
print(“Loop”,count)

else:
print(“循環正常執行完啦”)
print("-----out of while loop ------")

以上是個人摘要,原文http://www.cnblogs.com/jin-xin/articles/7459977.html#title-0-1-0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章