Python 3.1 快速導覽 - 字面常數

字面常數 (literal) 的意思就是字面上的意義,也就是說, 1234 就代表整數數值一千兩百三十四的意義,因此,所謂的字面常數就是直接寫進 Python 程式原始碼的數值,依資料型態 (data type) 分類有

  • 字串字面常數 (string literal)
  • 字節字面常數 (bytes literal)
  • 整數字面常數 (integer literal)
  • 浮點數字面常數 (floating-point literal)
  • 複數字面常數 (imaginary literal)


字串字面常數



凡是以單引號或雙引號為起來的 Unicode 字元都是字串字面常數,如
"Hello"
"333-3333"
'王小明'
"おはよう"
''


最後用兩個單引號夾住的字串,這是一個沒有包含任何元素 (element) 的空字串。字串中可包含多個元素,每個元素被稱為字元 (character) ,每個字元都屬於 Unicode 符號,並且可以從字串中取出個別字元,或是將字串拆解成子字串。


注意,從原本的字串取出字元或子字串,雖然我們用了字元這個詞,但沒有字元這種物件,因此就算僅含有一個字元仍是字串。同時字串被建立後,字串的內容不可作更動,因為字串是不可變的 (immutable) ,這是說,我們可以把取出的字元或子字串放到另一個變數之中。


字串 (string) 中可以使用跳脫序列 (escape sequence) ,可以表示一些不可見字元,如下表
跳脫序列功能
\\反斜線
\'印出單引號
\"印出雙引號
\a警示聲
\b倒退鍵
\f跳頁 \u000c
\n印出新列
\r歸位符號
\ttab 鍵
\v重直定位鍵
\ooo八進位數字的 Unicode 符號
\xhh十六進位數字的 Unicode 符號




字節字面常數



字節字面常數是在單引號或雙引號前面加上 b 或 B 的前綴,如
b"Hello"
b"333-3333"
b'abc'


跟字串很像,但字節字面常數裡頭所儲存的是 ASCII 編碼的整數值。




整數字面常數



凡是以數字出現的都為十進位的 (decimal) 整數型態 (integral type) 的字面常數,如
1234
65
963
0


利用前綴可以將整數常數表示為八進位 (octal) 或十六進位 (hexadecimal)
前綴種類
0o, 0O八進位
0x, 0X十六進位



0o65 //等同十進位數字53
0o77 //等同十進位數字63
0x65 //等同十進位數字101
0xff //等同十進位數字255




浮點數字面常數



凡是以帶小數點的數字都為浮點數型態 (floating-point type) 的字面常數,如
0.125
22.69896
101.002
33.


浮點常數也可以用科學記號的方法來表示,如
1.125e-1
3.521e4
5.1203E2
1e2


字母 e 前後分成兩部份,如第一個數字



e 之前的 1.125 是標準化後的數字, e 之後的數字則為 10 的次方數,因此,這個數字會等於 1.125×10-1




複數字面常數



利用後綴 j 或 J 可表示複數中的虛數,如下
1 + 5j
3 - 7j
6 - 8J
12 + 10J




中英文術語對照
字面常數literal
字串字面常數string literal
字節字面常數bytes literal
整數字面常數integer literal
浮點數字面常數floating-point literal
複數字面常數imaginary literal
資料型態data type
元素element
字元character
不可變的immutable
字串string
跳脫序列escape sequence
十進位的decimal
整數型態integral type
八進位octal
十六進位hexadecimal
浮點數型態floating-point type






1 則留言:

Kaiching Chang 提到...

串列 list 的字面常數寫法使用中括弧,例如
a = [1, 2, 3, 4, 5]
序對 tuple 的字面常數寫法使用小括弧,例如
b = (1, 2, 3, 4, 5)
集合 set 的字面常數寫法使用大括弧,例如
c = {1, 2, 3, 4, 5}
字典 dictionary 的字面常數同樣使用大括弧,例如
d = {1:1, 2:2, 3:3, 4:4, 5:5}