變數 和 註釋

runfox545發表於2019-01-05

轉自:白月黑羽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)    # 相當於把數字物件當做函式物件進行呼叫,執行的時候就會出錯了。
    

      

    可以點選這裡檢視Python中有哪些關鍵字和內建函式

一個好的工程師,變數名不是亂取的,我們通常稱之為見名知意原則,就是看到變數名,就知道變數對應的資料的含義。

比如 startTime, your_name, 這樣的變數名,看了就知道是啥意思

而像 a , b , c 這樣的變數名就不好,因為看了不知道是啥意思。

 

注意:在Python中 變數名是大小寫敏感的。

不可以 在定義的時候使用 startTime 作為變數名,而在使用的時候,用 starttime 。

下面的程式碼就不正確

startTime = '20180504'
print(starttime)

變數值的變化

物件的名字為什麼叫變數呢?

因為它會變 :)

Python語言中,變數的值會可以產生變化

這裡特別要注意的是,這種變化有如下兩種情況

第一種:變數 重新指向了 新的物件

這種情況也被稱之為 變數重新賦值,比如

age = 43
age = 'hello'

執行程式的時候,第一條語句執行完的時候,變數名age就是數字物件 43 的名字。

其對應關係如下圖所示:

image

 

第二條語句執行完, 變數age就不是數字物件 43 的名字了,而是字串物件 hello 的名字了。

其對應關係如下圖所示:

image

當第二條語句執行完, 數字物件 43 就沒有變數引用它了。

注意 沒有被引用的物件,直譯器會在隨後某個時候從記憶體中清除掉。


一個物件可以有多個名字,比如

kid = '小明'
student = kid
prettyboy = kid

這樣, 小明 這個字串物件就有3個 變數名 kid、 student 和 prettyboy

這3個名字 指向同一個物件。

其對應關係如下圖

image

 

如果後面的程式碼將其中一個變數名進行重新賦值,比如

kid = '小周'

這隻會改變kid 一個變數和其指向物件的 關係,並不會改變其他的變數名 student 和 prettyboy

其對應關係如下圖

image

 

第二種: 變數 指向的物件 本身發生了變化

這種情況,是當變數指向的物件是可變的資料型別,比如:列表、字典,或者自定義的類例項物件。

這幾種物件型別我們後面會學。

這裡先給大家舉個字典物件的例子

 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)

執行結果就是

小周
小明
小明

  

 

相關文章