變量
(1)在計算機程序中,變量不僅可以是數字,還可以是任意數據類型,
變量子啊程序中就是一個變量名表示的,變量名必須是大小寫英文,數字,和"_"的組合,切不能以數字開頭.
a = 1 #變量a是一個整數
1
b = "shuai" #變量b是一個字符串
1
c = True #變量c是一個布爾值True
1
(2)在python中,等號"="
是賦值語句,可以把任意數據類型賦值給變量,同一個變量可以反復賦值,而且可以是不同類型的變量,例如:
a = 1 # a是整數
print(a)
a = 'A' # a變為字符串
print(a)
#賦值變量的時候,可以給一個變量賦值多次,最終賦值取決于最后一個賦值進去的值.
1
2
3
4
5
(3)變量本身類型不固定的語言稱之為**動態語言
,與之相對的是靜態語言
**
靜態語言在定義變量的時候必須指定變量類型,如果賦值的時候類型不匹配,就會報錯.如:java是靜態語言,賦值語句如下:(// 表示注釋):
int a = 1 //a是整數類型變量
a = "A" //錯誤:不能把字符串賦值給整形變量
1
2
和靜態與言相比,動態語言更靈活,就是這個原因.
(4)賦值語句的等號不等同于數學的等號,例如:
x = 20
x = x + 2
1
2
在數學上理解x = x + 2
?是不成立的,在程序中,賦值語句先計算右側的表達式x + 2
,得到結果12
,再賦值給變量x,由于x
之前的值是10
,重新賦值后,x
的值變成12
.
變量在內存中的表示
當在寫變量
name = "zhang"
1
時,python解釋器干了兩件事情:
(1)在內存中創建了一個'zhang'
的字符串;
(2)在內存中創建了一個名為'name'
的變量,并把這個'name'
變量指向'zhang'
當然也可以把name
變量的值再賦值給另一個變量name2
,實際上是把變量name2
指向變量name
所指向的數據,如:
name = "zhang"
name2 = name
name = "shuai"
print(name2)
#最后打印的"name2"變量會是"zhang"還是"shuai"呢?
#答案是"shuai"
1
2
3
4
5
6
一行一行的執行代碼,看一下執行中發什么了什么?
執行name = "zhang"
,解釋器創建了字符串"zhang"
和變量"name"
,并把"name"
指向"zhang"
執行name2 = name
,解釋器創建了變量"name2"
,并把name2
指向name
指向的字符串"zhang"
:
執行name = "shuai"
,解釋器創建字符串"shuai"
,并把name
的指向改為"shuai"
,但name2
并沒有更改:
所以,最后打印變量name2
的結果是"zhang"
。
常量
(1)所謂常量就是不變的變量,比如常用數學常數π就是一個常量,在python中通常用**變量名全部大寫
**來表示常量
.
PAI = 3.1415926
1
(2)但事實上PAI
仍然是一個變量,python根本沒有任何機制保證PAI
不會改變,所以用全部大寫的變量名
只是一個標注或者是習慣用法,如果仍然要改變PAI
變量值,也是沒有人能攔住的!!!
海普森(Hipeson)——專注計算&助力科研
面向各大高校、科研院所、企事業單位,提供高性能計算產品解決方案