python基礎教程:基本資料型別
計算機的本質就是計算,在其內部是 0
和 1
的位元位的變化,對外表現就是資料的變化。那麼,計算機都能處理什麼資料呢?本質上,資料都是以位元組(Byte)儲存的,表現上看,它們就是整數、浮點數和字串等。Python的基本資料型別也不外乎於此。

整數和浮點數就跟數學中的一樣,而字串就是各種字元的組合。
數值型別:整數(int)、浮點數(float)
int
和 float
是Python中為整數和浮點數保留的關鍵字。
整數和浮點數(也就是小數)和我們在小學時學的一樣:
Python中的整數: int
包括 正整數
、 零
和 負整數
: 3
, 0
, -20
等等。日常生活中,我們接觸的整數都是十進位制的,而在計算機中二進位制和十六進位制也是很常見的。
二進位制整數用 0b
作為字首,因為是 二 進位制,所以只包含 0
和 1
兩個字元,比如: 0b101
, 0b1000
。如果包含 01
以為的字元就是錯誤的:
In [40]: b = 0b1003 File "<ipython-input-40-df926afcdae8>", line 1 b = 0b1003 ^ SyntaxError: invalid syntax
十六進位制整數用 0x
作為字首,包含 0-9a-f
共6個字元,比如: 0x23ab
, 0xfd39803a
。同樣的十六進位制只能包含它規定的16個字元,不過, a-f
這6個字母不區分大小寫,也就是說 A-F
也是合法的十六進位制字元。
二進位制法定 01
兩個字元,十六進位制法定 0-9a-f
共16個字元,就跟十進位制有 0-9
共10個字元是一樣的。
In [46]: a = 32 In [47]: a Out[47]: 32 In [48]: b = 0x20 In [49]: b Out[49]: 32 In [50]: c = 0b100000 In [51]: c Out[51]: 32
另外,布林型別(Boolean)作為一種整數的子型別表示程式中的“是非”,它的值有且僅有兩個: True
和 False
。它是以後程式設計中條件判斷、比較運算的重要概念,我們將在後面專門來講一講布林型別。
Python中的浮點數: float
浮點數就是數學中的小數,也是做數值計算中常用的型別,Python中的寫法跟數學中一樣,比如: 0.235
, 3.1415926
, -6.5
等等。不過數值很大或很小時,浮點數就會變為科學計數法: 9.8e+16
, 2e-10
。
In [68]: a = 0.000000002 In [69]: a Out[69]: 2e-09 In [70]: b = 76000000000000000.0 In [71]: b Out[71]: 7.6e+16
數值運算:Python作為直譯器
講到數值型別就不得不說說數值計算,畢竟數就是拿來算的嘛。
Python跟數學一樣,支援整數和浮點數之間的四則運算加減乘除: +
, -
, *
, /
,也是用小括號 ()
來分組。比如:
In [72]: 3 + 4 Out[72]: 7 In [73]: 9-10 Out[73]: -1 In [74]: 39 + 18/3 Out[74]: 45.0 In [75]: 3 + 18*3 Out[75]: 57 In [76]: (50 - 30) / 2 Out[76]: 10.0 In [77]: 19 / 2 Out[77]: 9.5
同樣也支援數學中求商數和餘數的計算,比如:
a ÷ b = q…r
(13 ÷ 3 = 4…1)
其中,a為被除數,b為除數,q為商數,r為餘數
Python中求商數(floor division)的運算子是 //
,
而計算餘數(也叫 模除 、 取模操作 、 取模運算 )的運算子是 %
,模除在程式設計中有廣泛的應用,比如奇偶數的判斷。
In [81]: 19 // 3# 求商數 Out[81]: 6 In [82]: 19 % 3# 模除 Out[82]: 1 In [83]: 6 * 3 + 1 # 商數 × 除數 + 餘數 Out[83]: 19
還有Python中計算乘方的運算子是: **
In [84]: 8 ** 2 Out[84]: 64 In [85]: 8 ** 3 Out[85]: 512

Python基本資料型別
字串: str
在我們人類的語言中,數值對應著計算,文字對應著記錄。在Python語言中字串也是用來記錄的,它由一串字元(包括ASCII、中文字元等)組成。
字串的寫法有多種形式:
'單引號引起來的可以內嵌"雙引號"的字串' "雙引號引起來的可以內嵌'單引號'的字串" '''連續的三個單引號引起來的''',"""連續三個雙引號引起來的"""
特別的是,三引號字串可以分成多行來寫,多行之間的空白(包括換行符、空格、Tab鍵)都是字串的一部分。
同時可以使用反斜槓 \
進行字元轉義:
In [86]: '認真學python' Out[86]: '認真學python' In [87]: '認真\'學\'Python' Out[87]: "認真'學'Python" In [88]: "認真'學'Python" Out[88]: "認真'學'Python" In [89]: "認真\"學\"Python" Out[89]: '認真"學"Python' In [90]: '''hi! ...: hello''' Out[90]: 'hi!\nhello'
反斜槓 \
會把它後面的字元轉義出特殊字元,比如 \n
就轉義為換行符。如果想取消這種轉義,可以使用 原始字串 的方式,即在字串前面加 r
即可:
In [91]: print('C:\good\named-files')# 該字串中 \n 是一個字元,表示換行符 C:\good amed-files In [92]: print(r'C:\good\named-files')# 該字串中 \n 是原始的兩個字元:`\`和`n`,因為前面加了 r。 C:\good\named-files
空值: None
Python定義了一個特殊的 None
來表示空值,它不同於 False
, 0
,但它的邏輯值為假。可以看以下程式碼加深理解:
In [93]: None + 1 --------------------------------------------------------------------------- TypeErrorTraceback (most recent call last) <ipython-input-93-3fd8740bf8ab> in <module> ----> 1 None + 1 TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' In [94]: None == False Out[94]: False In [95]: None == 0 Out[95]: False In [96]: type(None) Out[96]: NoneType In [97]: type(0) Out[97]: int In [98]: type(False) Out[98]: bool In [99]: if None: ...:print('i am True') ...: else: ...:print('i am False') ...: i am False
如果你定義的函式沒有返回值,Python會自動返回 None
。
總結
這一節我們學到了Python可以當做計算機來進行整數、浮點數這些基本型別的加減乘除、求商、其餘等運算,還有字串的表示。
大家在學python的時候肯定會遇到很多難題,以及對於新技術的追求,這裡推薦一下我們的Python學習扣qun:784758214,這裡是python學習者聚集地!!同時,自己是一名高階python開發工程師,從基礎的python指令碼到web開發、爬蟲、django、資料探勘等,零基礎到專案實戰的資料都有整理。送給每一位python的小夥伴!每日分享一些學習的方法和需要注意的小細節
