變量
任何編程語言都需要處理數據,比如數字、字符串、字符等,我們可以直接使用數據,也可以將數據保存到變量中,方便以後使用。
變量(Variable)可以看成一個容器,專門用來“盛裝”程序中的數據。每個變量都擁有獨一無二的名字,通過變量的名字就能找到變量中的數據。從底層看,程序中的數據最終都要放到內存(內存條)中,變量其實就是這塊內存的名字。
1 定義變量(給變量賦值)
Python中定義變量來保存數據的語法如下:
變量名 = 值
- 變量名
- 程序員自己命名,要求是標識符但是不能是關鍵字
- 避免和Python內置函數名重名
- 滿足PEP8命名規範(所有的字母都小寫,多個單詞之間用下劃線隔開)
- 見名知義(看到變量名能夠知道這個變量中大概存的是什麼數據)
- 值
- 可以是任何有結果的表達式,比如:具體的數據、已經定義過的變量、運算表達式等
注意: Python中定義變量和給變量賦值的語法是一樣的
例如,下面的語句將整數10賦值給變量n:
n = 10
從此以後,n就代表整數10,使用n也就是使用10。
更多賦值的語句:
# 給變量age賦值爲20
age = 20
# 給變量name賦值爲'小明'
name = '小明'
# 將布爾值賦值給變量real
real = True
變量的值不是一成不變的,它可以隨時被修改,只要重新賦值即可;另外你也不用關心數據的類型,可以將不同類型的數據賦值給同一個變量。請看下面的演示:
age = 18 # 將18賦值給變量age
age = 30 # 將30賦值給變量age
age = 50 # 將50賦值給變量age
abc = 12.5 # 將小數賦值給變量abc
abc = 100 # 將整數賦值給變量abc
abc = 'http://1000phone.com' # 將字符串賦值給變量abc
注意,變量的值一旦被修改,之前的值就被覆蓋了,不復存在了,再也找不回了。換句話說,變量只能容納一個值。
除了賦值單個數據,你也可以將表達式的運行結果賦值給變量,例如:
# 將數學運算的結果賦值給變量
sum1 = 10 + 2 +3
result = 10 / 2 * 3 - 4
# 將字符串拼接結果賦值給變量
str1 = 'hello' + 'Python!'
2 變量的使用
使用 Python 變量時,只要知道變量的名字即可。
幾乎在 Python 代碼的任何地方都能使用變量,請看下面的演示:
n = 10
print(n) # 將變量傳遞給函數,作爲函數的實參
m = n * 2 + 10 # 將變量作爲四則運算的一部分
print(m)
print(m+n+100) # 將由變量構成的運算表達式作爲函數的實參傳遞給函數
結果:
10
30
140
3 Python是弱類型的語言
在強類型的編程語言中,定義變量時要指明變量的類型,而且賦值的數據也必須是相同類型的,C語言、C++、Java 是強類型語言的代表。
下面我們以 C++ 爲例來演示強類型語言中變量的使用:
// 定義變量n,並且賦初值爲10
int n = 10; // int表示整型類型
n = 100; // 重新給變量n賦值爲100
n = "http://www.1000phone.com"; //錯誤!不能將字符串賦值給整數類型的變量
url = "http://www.1000phone.com"; //錯誤!沒有指定類型的變量是沒有定義的變量,不能使用
和強類型語言相對應的是弱類型語言,Python、JavaScript、PHP 等腳本語言一般都是弱類型的。
弱類型語言有兩個特點:
- 變量無須聲明就可以直接賦值,對一個不存在的變量賦值就相當於定義了一個新變量。
- 變量的數據類型可以隨時改變,比如,同一個變量可以一會兒被賦值爲整數,一會兒被賦值爲字符串。
注意,弱類型並不等於沒有類型!弱類型是說在書寫代碼時不用刻意關注類型,但是在編程語言的內部仍然是有類型的。我們可以使用 type() 內置函數類檢測某個變量或者表達式的類型,例如:
x = 10
print(type(x))
x = 12.5
print(type(x))
結果:
<class 'int'>
<class 'float'>