Python 的基本資料類型

1、整數

Python 可以處理任意大小的整數,當然包括負整數,在Python 程式中,整數的表示法和數學上的寫法一模一樣,例如:1 ,100,-8080,0,等等。

計算機由於使用二進制,所以,有時用十六進位表示整數比較方便,十六進位用 0x 前綴和 0-9,a-f 表示,例如:0xff00,0xa5b4c3d2,等等。

2、浮點數

浮點數也就是小數,之所以稱為浮點數,是因為依照科學記數法表示時,一個浮點數的小數點位置是可變的。整數和浮點數在電腦內部儲存的方式是不同的,整數運算永遠是精確的(除法也是精確的),而浮點數運算則可能會有四捨五入的誤差。

3、字串

字串是以 '' 或 "" 括起來的任意文本,例如 'abc' ,"123" 等等。請注意,'' 或 "" 本身只是一種表示方式,不是字串的一部分,因此,字串 'abc' 只有 a,b,c 這 3 個字元。這個其他的程式語言也是類似的。

(1) Python 中的字串和字串轉義

在上面那裡提到,字串可以用 '' 或者 "" 括起來表示。可是有些時候,我們字串本身就包含了 '' 或 "" ,怎麼辦呢?

那這個時候就需要對字串的某些特殊字元進行“轉義”,Python 字串用 \ 進行轉義。跟 JAVA 也是一樣的。

常用的轉義字元還有:

\n 表示换行
\t 表示一个制表符
\ 表示 \ 字符本身

具體例子:

354b77388d85a11d9ed6755399700f6.png那上面就有一個問題呢,如果一個字串包含很多需要轉義的字符,對每一個字符都進行轉義會很麻煩。這裡為了應付這種情況,我們可以在字串前面加個前綴 r ,表示這是一個 raw 字串,裡面的字元就不需要轉義了。

a03e52b4b16cce036b9b903b405f83d.png但是,要注意的一點是,但是r'...'表示法不能表示多行字串,也不能表示包含'和"的字串。

如果要表示多行字串,可以用'''...'''表示,當然你也還可以在多行字串前面加上r ,把這個多行字串也變成一個raw字串

634ef4d2306ff34addfca848aedc7cd.png(2) 字串的編碼問題

#

我們都知道計算機只能處理數字,如果要處理文本,就必須先把文本轉換為數字才能處理。最早的電腦在設計時採用8個位元(bit)作為一個位元組(byte),所以,一個位元組能表示的最大的整數就是255(二進位11111111=十進位255),0 - 255被用來表示大小寫英文字母、數字和一些符號,這個編碼表被稱為ASCII編碼,例如大寫字母A 的編碼是65,小寫字母z 的編碼是122。

如果要表示中文,顯然一個字節是不夠的,至少需要兩個字節,而且還不能和 ASCII 編碼衝突,所以,中國製定了 GB2312 編碼,用來把中文編進去。

類似的,日文和韓文等其他語言也有這個問題。為了統一所有文字的編碼,Unicode 應運而生。 Unicode 把所有語言統一到一套編碼裡,這樣就不會再有亂碼問題了。

Unicode 通常用兩個位元組表示一個字符,原有的英文編碼從單字節變成雙字節,只要把高字節全部填為 0 就可以。

因為 Python 的誕生比 Unicode 標準發布的時間還要早,所以最早的Python 只支援 ASCII 編碼,普通的字串 'ABC' 在 Python 內部都是 ASCII 編碼的。

Python 在後來加入了對 Unicode 的支持,以 Unicode 表示的字串用u'...'表示。

不過在最新的 Python 3 版本中,字串是以 Unicode 編碼的,也就是說,Python 的字串支援多語言。就像上面的例子一樣,我的程式碼中沒有加u'...',也能正常顯示。

不過由於 Python 原始碼也是一個文字文件,所以,當你的原始程式碼包含中文的時候,在儲存原始程式碼時,就需要務必指定儲存為 UTF-8 編碼。當Python 解釋器讀取原始程式碼時,為了讓它按UTF-8 編碼讀取,我們通常在檔案開頭寫上這兩行:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

第一行註解是為了告訴Linux/OS X系統,這是一個Python 可執行程序,Windows 系統會忽略這個註解;

第二行註解是為了告訴Python 解釋器,按照UTF-8 編碼讀取原始程式碼,否則,你在原始碼中寫的中文輸出可能會有亂碼。

申明了UTF-8 編碼並不意味著你的.py 檔案就是UTF-8 編碼的,必須並且要確保文字編輯器正在使用UTF-8 without BOM 編碼

#4、布林值

布林值和布林代數的表示完全一致,一個布林值只有True 、 False 兩種值,要嘛是True,要嘛是False,在Python 中,可以直接用True、False 表示布林值(請注意大小寫),也可以透過布林運算計算出來。

布林值可以用 and、or 和 not 運算。

and 運算是與運算,只有全部都是 True,and 運算結果才是 True。

or 運算是或運算,只要其中有一個為 True,or 運算結果就是 True。

not 運算是非運算,它是一個單目運算符,把 True 變成 False,False 變成 True。

5、空值

基本上每種程式語言都有自己的特殊值-空值,在 Python 中,用 None 來表示

繼續學習