2.1 python常量與變量
變量:在程序運行過程中,值會發生變化的量
常量:在程序運行過程中,值不會發生變化的量
無論是變量還是常量,在創建時都會在內存中開辟一塊空間,用于保存它的值。
1. 變量不需要聲明類型
Python 的變量和常量不需要事先聲明類型,這是根據Python的動態語言特性而來。
例如下面的 age 和 name 兩個變量,在使用前沒有進行任何的諸如 age int 和 name string 的類型聲明,而這在一些靜態語言中,比如 JAVA 和 Golang 中是必須的。
>>> age = 18
>>> name = "王炳明"
>>>
2. 賦值與比較
Python 中 用 = 號來給變量賦值,比如下面這個表達式,age 這個變量的值就是 18
>>> age = 18
與之相似的,新手會容易混淆的是 兩個等號 ==
,它表示的是比較兩個值是否相等,如果相等返回 True
,如果不相等返回 False
>>> age = 18
>>> age == 18
True
>>> age == 17
False
3. 先創建再使用
每個變量在使用前都必須賦值,變量賦值以后才會被創建。
新的變量通過賦值的動作,創建并開辟內存空間,保存值。
如果沒有賦值而直接使用,會拋出變量未定義的異常。例如:
>>> age
Traceback (most recent call last):
File "", line 1, in
NameError: name 'age' is not defined
>>>
>>> age = 18
>>> age
18
4. 賦值?的方式
賦值的兩種方式
第一種:單個直接賦值
>>> age = 18
>>> age
18
第二種:多個批量賦值
>>> a = b = c = 1
>>> a
1
>>> b
1
>>> c
1
第三種:先計算再賦值
# 先計算 17+1,再把結果賦值給age
>>> age = 17+1
>>> age
18
第四種:分別賦值
>>> a, b, c = 1, 2, 3
>>> a
1
>>> b
2
>>> c
3
第三種:先計算再賦值
5. 理解賦值的背后
理解變量在計算機內存中的表示也非常重要。
當我們寫:a = "Jack" 時,Python解釋器干了兩件事情:
在內存中創建了一個'Jack'的字符串對象;
在內存中創建了一個名為a的變量,并把它指向 'Jack'。
而當你把一個變量a賦值給另一個變量b,這個操作實際上是將變量b指向變量a所指向的數據,例如下面的代碼:
>>> a = "Jack"
>>> a
'Jack'
>>> b = a
>>> b
'Jack'
>>> id(a)
4332916664
>>> id(b)
4332916664
通過id()
可以查看變量值的內存地址,打印出來的 a 和 b的內存地址是一樣的,因此二者其實是一個數據。
但如果繼續對 a 進行賦值其他值, 會發現 a 的內存地址變了,而 b 的并沒有變
>>> a = "Tom"
>>> a
'Tom'
>>> id(a)
4332974128
>>> id(b)
4332916664
請牢記:Python中的一切都是對象,變量是對象的引用!:
執行a = ‘Jack’,解釋器創建字符串‘Jack’對象和變量a,并把a指向‘Jack’對象;
執行b = a,解釋器創建變量b,并且將其指向變量a指向的字符串‘Jack’對象;
執行a = ‘Tom’,解釋器創建字符串‘Tom’對象,并把a改為指向‘Tom’對象,與b無關。

6.? 簡單介紹常量
說完變量,還要說下常量。
常量就是不變的變量,比如常用的數學常數圓周率就是一個常量。在Python中,通常用全部大寫的變量名表示常量:
>>> PI = 3.14159265359
>>> PI
3.14159265359
但事實上,從Python語法角度看,PI仍然是一個變量,因為Python根本沒有任何機制保證PI不會被改變。你完全可以給PI賦值為10,不會彈出任何錯誤。所以,用全部大寫的變量名表示常量只是一個習慣上的用法。
常量通常放置在代碼的最上部,并作為全局使用。
審核編輯:湯梓紅
-
語言
+關注
關注
1文章
97瀏覽量
24406 -
字符
+關注
關注
0文章
234瀏覽量
25432 -
python
+關注
關注
56文章
4822瀏覽量
85906
發布評論請先 登錄
深入了解U8g2與LVGL圖形庫
深入了解 PCB 制造技術:銑削

const定義的是不是常量
深入了解渦街流量計 原理及內部構造
如何為不同的電機選擇合適的驅動芯片?納芯微帶你深入了解!

深入了解光伏逆變器測試系統

技術干貨驛站 ▏深入理解C語言:掌握常量,讓你的代碼更加穩固高效!

深入了解表面貼裝型晶體濾波器:DSF753S 2POLE、DSF753S 3POLE 和 DSF753S 4POLE

深入了解 MEMS 振蕩器 溫度補償 MEMS 振蕩器 TC-MO

技術干貨驛站 ▏深入理解C語言:基本數據類型和變量

小熊派官網正式上線 可深入了解小熊派的各款開發套件

深入了解IEEE協會:設備MAC地址申請指南

評論