變數



在前面的範例中,第一次的 input,電腦雖然接收了使用者輸入的文字,但沒有額外的動作處理,所以輸入的文字等於是被 "丟掉了" 了。

第二次的 input 搭配了 print,所以在您輸入完文字後,一按下 ENTER 鍵,螢幕就會立即顯示您剛才輸入的內容

我們可以利用 "變數" 將使用者輸入的文字暫時記錄下,然後在您指定的時刻顯示,或是對使用者輸入的內容進行分析、運算。

回想一下,在學生時期學習的數學題目:
 
假設有

x = 3
y = 4

求 2x + y 為多少?
 
xy 就是變數

將上面的數學題目稍加變化,轉換成 Python 程式,變成:

practice3.py
 
# 注意:透過 input 所接收的內容, Python 都視為是 "字串"
# 需藉由 int() 將文字轉換成可運算的數字; int 就是英文的 整數(integer) 的縮寫
x = int(input('請輸入 x 的值:'))
y = int(input('請輸入 y 的值:'))

# 為了讓人閱讀舒服,在螢幕上輸出一行空白
print('\n')

print('2x + y = ', 2*x+y)    
 
執行結果
 
D:\practice>python practice3.py
請輸入 x 的值:3
請輸入 y 的值:7

2x + y =  13
 


我們可以進一步讓變數的命名方式更具意義,提高程式的可讀性:

practice4.py
 
name = input('請輸入名字:')
age = int(input('請輸入年齡:'))

# 為了讓人閱讀舒服,在螢幕上輸入一行空白
print('\n')
print('10 年後, ' + name + ' 將是 ' + str(age+10) + ' 歲')    # str() 將數字轉換成字串; str 就是英文的 字串(string) 的縮寫
 


執行結果
 
D:\practice>python practice4.py
請輸入名字:john
請輸入年齡:18


10 年後, john 將是 28 歲
 


此外,Python 對變數的命名方式是有規定的:
1. 由大、小寫英文字母、數字、底線( _ ),組成,但開頭第一個字不能是數字,可以是英文字母(大、小寫均可) 或 _
2. 不可與內建保留字同名(後面會有說明)
3. 英文大、小寫是有區別的
4. 最長不超過 79 個字

下面是合乎 Python 規定的變數名稱
 
name
age
Age
AGE
_tel
HomeTel    # 也可以用幾個字組成一個變數名稱, 一目瞭然, 知道其所代表的意思
 
雖然字面上看 age, Age, AGE 都是同樣的意思,但若這 3 個英文字同時出現在同一支程式內,則它們代表的是不同的 3 個變數

目前較普遍為大家採用的命名方式是將幾個有意義的英文字組成變數名稱,例如:FirstNameLastName、...,每個英文字的首字母大寫,這種命名風格稱為「駝峰式大小寫(Camel-Case)
 
age = 1
Age = 2
AGE = 3

print('age 的值為 '+str(age))
print('Age 的值為 '+str(Age))
print('AGE 的值為 '+str(AGE))


# 執行結果
age 的值為 1
Age 的值為 2
AGE 的值為 3
 


變數的種類

Python 的基本變數種類常用的有 數字字串布林值(後面會說明),數字又分 整數浮點數(簡單地說,就是有含小數點的數字)

字串變數的運算

practice5.py
 
str1 = 'abc'
str2 = 'def'
 
# 字串的相加就是把兩個字串連接起來
print('str1 + str2 的結果為 '+(str1+str2))
print('\n')
 
# 將兩個字串相加的結果存入新的變數 str3
str3 = str1 + str2
print('str3 的值為 '+str3)
print('\n')

# 字串的乘法
str3 = str1 * 4
print('str1 * 4 = '+str3)
print('\n')

# 字串的第一個字,也就是起始位置是 0
str4 = 'abcdefghijk'
print('str4 的第 1 個字是 '+str4[0])
print('str4 的第 5 個字是 '+str4[4])
# 取出第 1~6 個字
print('str4 的第 1~6 個字是 '+str4[:6])
# 取出第 7 個字到最後一個字
print('str4 的第 7 個字到最後一個字是 '+str4[6:])
# 取出第 4~8 個字
print('str4 的第 4~8 個字是 '+str4[3:8])
print('\n')

# 字串的運算沒有 減法, 下面的寫法會出錯
str3 = str1 - str2

# 在程式出錯的地方之後的程式碼, 都不會被 Python 執行
print('程式有錯誤喔')
 
執行結果:
 
D:\practice>python practice5.py
str1 + str2 的結果為 abcdef


str3 的值為 abcdef


str1 * 4 = abcabcabcabc


str4 的第 1 個字是 a
str4 的第 5 個字是 e
str4 的第 1~6 個字是 abcdef
str4 的第 7 個字到最後一個字是 ghijk
str4 的第 4~8 個字是 defgh


Traceback (most recent call last):
  File "practice5.py", line 32, in     ← 可以從錯誤警示知道有問題的程式碼在哪一行
    str3 = str1 - str2
TypeError: unsupported operand type(s) for -: 'str' and 'str'


Python 保留字

所謂保留字(或稱 關鍵字),就是與 Python 功能性有關的字,例如 print 就是保留字,以保留字做為變數名稱,通常會令 Python 無法執行;就算僥倖能執行,也會造成閱讀您的程式碼的人混淆,是不好的習慣。

下面列出 Python 的保留字
 
  False      class       finally    is          return
  None       continue    for        lambda      try
  True       def         from       nonlocal    while
  and        del         global     not         with
  as         elif        if         or          yield
  assert     else        import     pass
  break      except      in         raise
 



常數


相對於「變數」,我們隨時可以改變 變數 的值,「常數」則是一開始給予值後,就「不應該」再更改或變動其值。

如果您之前有接觸過其他的程式語言,您可以回想一下,當您定義了常數後,若嘗試改變該常數的值,則程式會出錯而中斷。

但是 Python沒有常數 的功能,只對常數的命名建議 -- 「由大寫字母」及「底線(_)」組成 -- 與其他程式語言的命名慣例相同。

因此,當我們看到一個變數的名稱全為大寫時,就「不應」去變動它的值。
 
PI = 3.14159    # 圓周率

ABSOLUTE_ZERO = -273.15    # 絕對零度
 






⇑ 目錄 ⇑