為何這些年大家都在談Python?為何Python能成為程式語言排名第一名?為何Python能把C和Java從王座拉下來?這些答案就留給大家去思考。
今天我們先來談談Python的變數,變數是電腦的記憶體中一個小小的容器,電腦要存取記憶體的資料,必須先用位址匯流排送出位址,也就是指定容器的編號,再經由資料匯流排來讀取容器的內容。
由上面說明,我們知道一般程式語言的變數都是使用這個觀念,以C語言為例:
int x, y;
其示意圖如下圖所示:
當我們把資料放到容器中,
x=42;
y=42;
其結果如下圖:
若我們把y設定為78,
y=78;
但Python是採用物件參考(Object References)方式來設計變數,也就是Python的變數是標籤名稱而不是容器本身。注意一下,雖然是標籤名稱,但不是貼在容器上的標籤,而是用獨立的物件。大家可以參考下列文章:
Data Types and Variables:https://www.python-course.eu/python3_variables.php
我們整理出一些觀念,說明如下:
C的程式一般程式宣告用法:
int x;
x=42;
Python程式一般程式用法:
x=42
要留意一下,Python變數使用前不用事先宣告。
另外設定變數y為x變數,其程式如下:
y=x
當我們把78放到y變數時,
y=78
y本身不變,但會再建立一個容器來放78。
當我們把"Text"放到x變數,系統會另外產生一個新的容器來存放"Text"內容。
x = "Text"
此時放有整數42容器,會被系統自動做垃圾回收,Python語言最大好處,您不用管記憶體回收的問題,只要專注在程式功能實現上。
(圖出處:https://www.python-course.eu/python3_variables.php)
下圖為C和Python對陣列變數上的不同,這也就是為什麼Python允許,把整數和字串同時放到同一個陣列中,但C不行(注意!C不是不能做到,Python的做法C也可以做到,只是要寫更多行的指令,這也是為什麼有人常說Python比C來得簡潔)。
(圖出處:https://chatasweetie.com/2015/10/23/week-1/)
沒有留言:
張貼留言