變數 在程式設計中,變數(英語:Variable,scalar)是指一個包含部分已知或未知數值或資訊(即一個值)之儲存位址,以及相對應之符號名稱(識別字)。通常使用變數名稱參照儲存值;將名稱和內容分開能讓被使用的名稱獨立於所表示的精確訊息之外。電腦原始碼中的識別字能在執行期間綁扎一個值,且該變數的值 ...
變數
在程式設計中,變數(英語:Variable,scalar)是指一個包含部分已知或未知數值或資訊(即一個值)之儲存位址,以及相對應之符號名稱(識別字)。通常使用變數名稱參照儲存值;將名稱和內容分開能讓被使用的名稱獨立於所表示的精確訊息之外。電腦原始碼中的識別字能在執行期間綁扎一個值,且該變數的值可能在程式執行期間改變。 程式設計中的變數不一定能直接對應到數學中所謂的變數之概念。在程式設計中,變數的值不一定要為方程或數學公式之一部分。程式設計中的變數可使用在一段可重覆的程式:在一處賦值,然後使用於另一處,接著在一次賦值,且以相同方式再使用一次(見迭代)。程式設計中的變數通常會給定一個較長的名稱,以描述其用途;數學中的變數通常較為簡潔,只給定一、兩個字母,以方便抄寫及操作。
一個變數的儲存位址可以被不同的識別字所參照,這種情況稱之為別名。使用其中一個識別字為變數賦值,將會改變透過另一個識別字存取的值。
編譯器必須將代表變數的名稱替代成該數據所在的實際位址。變數的名稱、類型及位址通常會維持固定,但該位址所儲存之數據於程式執行期間則可能會改變。
--以上是維基百科對 《變數(程式設計)》的解釋
- 我們知道在電腦運行程式時數據都是暫存在記憶體中的,用通俗的話說:就是代指記憶體中某個地址中所保存的內容。
- 在Python中,上述圖示用代碼表示為(代碼演示均在linux中完成):
ubuntu@VM-0-26-ubuntu:~$ python # 在linux命令行模式下進入python互動式環境
Python 2.7.12 (default, Nov 19 2016, 06:48:10) # 顯示python的版本號信息
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> name = "xiangcl" # 在記憶體中創建一個內容為xiangcl,變數名為name的變數
>>> id(name) # 獲得對象的記憶體的地址
3072794496L
- 在這個例子中就是變數name和字元串xiangcl之間建立了對應的關係。
- 在Python中,有一句話叫做:對象有類型,變數無類型。
- 在上述例子中對象xiangcl是字元串類型,這就好比將name這個標簽粘貼在了字元串xiangcl上面。
變數的命名規則
- 在Python中,變數只能是由字母、數字以及下劃線組成,且不能以數字作為開頭。
- 下列Python的關鍵字也不能作為變數名使用(需特別註意):
python2.7
>>> import keyword # 引入keyword庫
>>> keyword.kwlist # 查看關鍵字列表
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
>>> keyword.iskeyword("and") # 判斷and是否為關鍵字
True # 返回True,則為python關鍵字,反之不是,在python3中的判斷方法是一樣的,這裡不在重覆
>>> keyword.iskeyword("has")
False
python3.5.2
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
可以看到Python2和Python3的關鍵詞還是有所不同的。
變數的賦值
>>> name1 = "xiangcl"
>>> name2 = "向常樂"
>>> id(name1)
3072443392
>>> id(name2)
3072427744
>>> name1 = "xiangcl"
>>> id(name1)
3072443392
>>> name2 = name1
>>> id(name2)
3072443392