本文內(nèi)容是基于《看漫畫學Python:有趣、有料、好玩、好用(全彩版)》的學習筆記
文章導圖

文章導圖
1. 什么是數(shù)據(jù)類型
所有數(shù)據(jù)類型都是類,數(shù)據(jù)值是數(shù)據(jù)類型的實例。
Python主要的內(nèi)置數(shù)據(jù)類型有6種:數(shù)字、字符串、列表、元組、集合和字典。其中,列表、元組、集合和字典均能容納多個數(shù)據(jù),統(tǒng)稱為容器類型的數(shù)據(jù)。
數(shù)字類型有四種,整數(shù)類型、浮點類型、復數(shù)類型和布爾類型,其中,布爾類型也是一種整數(shù)類型。
2. 整數(shù)類型
int型為整數(shù)類型,整數(shù)類型范圍大。
示例代碼如下:
num = 100
print(num)
# 100
print(type(num))
# <class 'int'>
print(0B10)
print(0b10)
# 以上兩個結果一致
# 2
print(0O10)
print(0o10)
# 以上兩個結果一致
# 8
print(0X10)
print(0x10)
# 以上兩個結果一致
# 16
3. 浮點類型
float型為浮點類型,僅支持雙精度浮點類型。
示例代碼如下:
num = 3.14
print(num)
# 3.14
print(type(num))
# <class 'float'>
print(314e-2)
# 3.14
print(0.314e1)
# 3.14
4. 復數(shù)類型
數(shù)學中的實數(shù)分為整數(shù)和浮點數(shù),與之對應的是復數(shù)在數(shù)學中的表示為,其中a為實部,b為虛部,i為虛數(shù)單位。
示例代碼如下:
num = 1 + 2j
print(num)
# 1 + 2j
print(type(num))
# <class 'complex'>'
print(num + num)
# 2 + 4j
print(num * 2)
# 2 + 4j
5. 布爾類型
bool型為布爾類型,bool的父類是int,只有兩個值True和False。
示例代碼如下:
print(bool(0))
# False
print(bool(1))
# True
print(bool(10))
# True
print(bool(''))
print(bool(' '))
print(bool([]))
print(bool({}))
# 以上四個結果一致
# False
6. 數(shù)字類型的轉換
布爾可以由數(shù)字類型的數(shù)據(jù)轉換而來,數(shù)字類型之間也可以相互轉換,數(shù)字類型中的整數(shù)類型、浮點類型和布爾類型可以相互進行轉換,其中轉換方式分為顯示類型和隱式類型的轉換。
(1) 隱式類型的轉換
當不同數(shù)字類型進行數(shù)學運算時,會觸發(fā)隱式類型的轉換。
轉換方式如下表所示:
| 操作數(shù)1類型 | 操作數(shù)2類型 | 轉換后類型 |
|---|---|---|
| 布爾類型 | 整數(shù)類型 | 整數(shù)類型 |
| 布爾類型、整數(shù)類型 | 浮點類型 | 浮點類型 |
示例代碼如下:
# 整數(shù)類型和布爾類型相加
num = 10 + True
print(num)
# 11
print(type(num))
# <class 'int'>
# 整數(shù)類型和浮點類型相加
num = 10 + 3.14
print(num)
# 13.14
print(type(num))
# <class 'float'>
# 整數(shù)類型、浮點類型和布爾類型相加
num = 10 + 3.14 + False
print(num)
# 13.14
print(type(num))
# <class 'float'>
(2) 顯示類型的轉換
在數(shù)字類型中,整數(shù)類型、浮點類型和布爾類型均有自己的轉換函數(shù),如:int()、float()和bool()函數(shù)。
示例代碼如下:
# 布爾類型轉換成整數(shù)類型
print(int(False))
# 0
print(int(True))
# 1
# 浮點類型轉換成整數(shù)類型
print(int(3.14))
# 3
# 布爾類型轉換成浮點類型
print(float(False))
# 0.0
print(float(True))
# 1.0
# 整數(shù)類型轉換成浮點類型
print(float(10))
# 10.0
# 整數(shù)類型轉換成布爾類型
print(bool(0))
# False
print(bool(1))
# True
print(bool(10))
# True
# 浮點類型轉換成布爾類型
print(bool(0.0))
# False
print(bool(1.0))
# True
print(bool(3.14))
# True