1. 程式人生 > >變量 和 註釋

變量 和 註釋

技術分享 理解 err 類型 數據類型 什麽 結果 對象 例子

轉自:白月黑羽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 的名字。

其對應關系如下圖所示:

技術分享圖片

第二條語句執行完, 變量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)

運行結果就是

小周
小明
小明

  

變量 和 註釋