轉自:白月黑羽Python3教程:http://www.python3.vip/doc/tutorial/python/0003/
Python語言中,所有的 資料
都被稱之為 物件。
每個整數、小數、字串,還有我們後面要學的 字典、元組、列表 等, 都是物件。
在Python程式執行的時候,這些物件 其實就是 記憶體中的一段資料
。
變數的概念
大家來思考一個問題:
人類語言裡面,當我們提到一個人或物體, 是怎麼說的?
比如說 聊天的時候,提到你的一個同學, 提到一支球隊
對了,用他們的 名字。
比如: 王曉剛同學, 湖人隊等等。
如果不允許使用 事物的名字, 我們的話就沒法說了。
人類語言是這樣,計算機語言也是一樣,如果產生了資料物件,卻沒有給它們起名字,就像這樣
43 '你好,今天天氣真不錯'
我們後面的程式碼,怎麼去使用這個數字 43
和 字串 '你好,今天天氣真不錯'
呢?
程式語言為了方便運算元據物件,也需要給物件起一個名字。
我們把Python語言中物件的名字, 稱之為 變數名 , 有時也簡稱 變數。
我們可以這樣給資料物件起名字
age = 43 weather = '你好,今天天氣真不錯'
變數名 和 資料物件 之間 用 等號
連線
其中
age 就是 數字物件 43
的名字,我們也可以說:變數age的值 是數字物件 43
weather 就是 字串物件 你好,今天天氣真不錯
的名字,我們也可以說:變數 weather 的值 是 字串物件 你好,今天天氣真不錯
定義了變數之後,我們寫程式碼,需要用到 這 兩個物件時,就可以用它們的名字: 變數名。
比如
age = 43 weather = '你好,今天天氣真不錯' print(age) print(weather)
程式碼執行的時候,直譯器看到 變數名 就知道代表的就是對應的資料物件。
大家執行一下,可以發現,可以列印出變數所代表的 物件。
下面這行語句, 定義了 一個變數 age 值為 43,
age = 43
也可以稱之為: 給變數 age 賦值 為43
變數的命名規則
變數名不是隨便取的,有一定的規則。
-
變數名可以包含 字母、數字和下劃線。
-
變數名可以以字母或下劃線打頭,比如 var1 , 或者 _var 。
-
但不能以數字打頭, 像
1var
這樣是不行的。 -
變數名中不能包含空格。
-
變數名中可以包含下劃線,像下面這樣都是可以的
Hello, var1, age2name, age_name
-
變數名 不能 和 關鍵字 同名,
比如
as = 1997
as 是 Python的關鍵字,是Python語言中有特殊意義的名字, 不能用作變數名。
-
變數名 不要 和 內建函式 同名
比如
type = 333 # 這行程式碼就把type這個內建函式名 重新賦值為數字物件 333 了 type(333) # 相當於把數字物件當做函式物件進行呼叫,執行的時候就會出錯了。
一個好的工程師,變數名不是亂取的,我們通常稱之為見名知意原則,就是看到變數名,就知道變數對應的資料的含義。
比如 startTime, your_name, 這樣的變數名,看了就知道是啥意思
而像 a , b , c 這樣的變數名就不好,因為看了不知道是啥意思。
注意:在Python中 變數名是大小寫敏感的。
不可以 在定義的時候使用 startTime 作為變數名,而在使用的時候,用 starttime 。
下面的程式碼就不正確
startTime = '20180504' print(starttime)
變數值的變化
物件的名字為什麼叫變數呢?
因為它會變 :)
Python語言中,變數的值會可以產生變化
這裡特別要注意的是,這種變化有如下兩種情況
第一種:變數 重新指向了 新的物件
這種情況也被稱之為 變數重新賦值,比如
age = 43 age = 'hello'
執行程式的時候,第一條語句執行完的時候,變數名age就是數字物件 43
的名字。
其對應關係如下圖所示:
第二條語句執行完, 變數age就不是數字物件 43
的名字了,而是字串物件 hello
的名字了。
其對應關係如下圖所示:
當第二條語句執行完, 數字物件 43 就沒有變數引用它了。
注意 沒有被引用的物件,直譯器會在隨後某個時候從記憶體中清除掉。
一個物件可以有多個名字,比如
kid = '小明' student = kid prettyboy = kid
這樣, 小明
這個字串物件就有3個 變數名 kid、 student 和 prettyboy
這3個名字 指向同一個物件。
其對應關係如下圖
如果後面的程式碼將其中一個變數名進行重新賦值,比如
kid = '小周'
這隻會改變kid 一個變數和其指向物件的 關係,並不會改變其他的變數名 student 和 prettyboy
其對應關係如下圖
第二種: 變數 指向的物件 本身發生了變化
這種情況,是當變數指向的物件是可變的資料型別,比如:列表、字典,或者自定義的類例項物件。
這幾種物件型別我們後面會學。
這裡先給大家舉個字典物件的例子
info = {'name' :'黑羽白月', 'height':'180cm'} info['height'] = '175cm' print(info)
第二條語句就是讓變數對應的字典物件的值 發生了變動
註釋
雖然Python語言是一種容易理解和閱讀的程式語言。
但是畢竟不是人類語言。
我們寫的程式碼 為了以後 別人能讀懂, 甚至以後自己能看懂, 就需要加入一些我們熟悉的人話,也就是人類語言,輔助理解。
這些輔助理解的人話,就是註釋。
這些人話可以是任何一種語言,只要方便你看懂程式碼就行,中文、英文、法文都可以。
Python的註釋以 # 開頭,後面的內容都是註釋
比如
# info 變數 記錄 作者的資訊,包括 名字,身高,體重 info = {'name' :'黑羽白月', 'height':'180cm'} # 改變 作者的身高記錄 info['height'] = '175cm' print(info) # 列印身高到螢幕上
怎麼樣,有了上面的註釋,這些程式碼是不是更容易讀懂了?
我們要注意的是,通常註釋是不會對程式碼的執行有影響的(除了一些非常特殊的註釋,比如程式碼開頭的檔案編碼註釋,以後會講)
註釋可以單獨作為一行, 比如:
# info 變數 記錄 作者的資訊,包括 名字,身高,體重 info = {'name' :'黑羽白月', 'height':'180cm'}
也可以接在程式碼的後面,比如:
print(info) # 列印身高到螢幕上
也可以連續有多行的註釋,比如:
# info 變數 記錄 作者的資訊 # 包括 名字,身高,體重 info = {'name' :'黑羽白月', 'height':'180cm'}
所以,如果我們接下來執行下面的程式碼
print(kid) print(student) print(prettyboy)
執行結果就是
小周 小明 小明