【廖雪峰python入門筆記】變數
1. 靜態語言和動態語言中的變數表示
靜態語言在定義變數時必須指定變數型別,如果賦值的時候型別不匹配,就會報錯。例如Java是靜態語言,賦值語句如下:
int a = 123; // a是整數型別變數
a = "mooc"; // 錯誤:不能把字串賦給整型變數
和靜態語言相比,動態語言更靈活。
2. 變數在計算機中的記憶體表示
最後,理解變數在計算機記憶體中的表示也非常重要。當我們寫:a = ‘ABC’時,Python直譯器幹了兩件事情:
在記憶體中建立了一個’ABC’的字串;
在記憶體中建立了一個名為a的變數,並把它指向’ABC’。
也可以把一個變數a賦值給另一個變數b,這個操作實際上是把變數b指向變數a所指向的資料,例如下面的程式碼:
a = 'ABC'
b = a
a = 'XYZ'
print(b)
最後一行列印出變數b的內容到底是’ABC’呢還是’XYZ’?如果從數學意義上理解,就會錯誤地得出b和a相同,也應該是’XYZ’,但實際上b的值是’ABC’:
執行·a = ‘ABC’,直譯器建立了字串 ‘ABC’和變數 a,並把a指向 ‘ABC’:
執行a
執行b = a,直譯器建立了變數 b,並把b指向 a 指向的字串’ABC’:
執行a = ‘XYZ’,直譯器建立了字串’XYZ’,並把a的指向改為’XYZ’,但b並沒有更改:
所以,最後列印變數b的結果自然是’ABC’了。
相關文章
- 【廖雪峰python入門筆記】dictPython筆記
- 【廖雪峰python入門筆記】setPython筆記
- 【廖雪峰python入門筆記】切片Python筆記
- 【廖雪峰python入門筆記】迭代Python筆記
- 【廖雪峰python入門筆記】tuple_“元素可變”Python筆記
- 【廖雪峰python入門筆記】函式Python筆記函式
- 【廖雪峰python入門筆記】if語句Python筆記
- 【廖雪峰python入門筆記】for迴圈Python筆記
- 【廖雪峰python入門筆記】整數和浮點數Python筆記
- 【廖雪峰python入門筆記】列表生成式Python筆記
- 【廖雪峰python入門筆記】list_建立Python筆記
- 【廖雪峰python入門筆記】tuple_建立Python筆記
- 【廖雪峰python入門筆記】while迴圈Python筆記While
- 【廖雪峰python入門筆記】多重迴圈Python筆記
- 【廖雪峰python入門筆記】break和continuePython筆記
- 【廖雪峰python入門筆記】list刪除元素_pop()Python筆記
- 【廖雪峰python入門筆記】list_替換元素Python筆記
- 【廖雪峰python入門筆記】tuple_建立單元素Python筆記
- 【廖雪峰python入門筆記】字串_轉義字元的使用Python筆記字串字元
- 【廖雪峰python入門筆記】raw 字串和多行字串表示Python筆記字串
- 【廖雪峰python入門筆記】list_按照索引訪問Python筆記索引
- 【廖雪峰python入門筆記】list_倒序訪問Python筆記
- 【廖雪峰python入門筆記】布林運算和短路計算Python筆記
- 【廖雪峰python入門筆記】list新增元素_append()和insert()Python筆記APP
- 【廖雪峰python進階筆記】模組Python筆記
- 廖雪峰Git教程筆記Git筆記
- 【廖雪峰python入門筆記】Unicode編碼_UnicodeDecodeError處理Python筆記UnicodeError
- 【廖雪峰python進階筆記】定製類Python筆記
- 【廖雪峰python進階筆記】函數語言程式設計Python筆記函數程式設計
- 【廖雪峰python進階筆記】類的繼承Python筆記繼承
- 廖雪峰JS學習總結-入門篇JS
- 【廖雪峰python進階筆記】物件導向程式設計Python筆記物件程式設計
- 廖雪峰Git學習筆記1-Git簡介Git筆記
- 跟著廖雪峰學python 005Python
- Python廖雪峰13個案例講解分析帶你全面入門人工智慧Python人工智慧
- 廖雪峰《Python3 基礎教程》讀書筆記——第一、第二章Python筆記
- 20190228 學習筆記——廖雪峰 git筆記Git
- Python入門筆記Python筆記