一、Python 核心數據類型

Python 是動態類型語言,無需顯式聲明變量類型,核心數據類型可分為以下大類,包含常用操作和示例:

1. 基本數據類型

類型

描述

示例

常用操作

整數(int)

任意大小整數,支持正負、0

a = 10b = -5c = 0x10(十六進制)

算術運算(+-*///%**)、比較運算(==> 等)

浮點數(float)

帶小數的數字(雙精度)

x = 3.14y = 2.5e-3(科學計數法)

同整數運算(注意浮點數精度問題,如 0.1 + 0.2 != 0.3

布爾值(bool)

邏輯值,僅 True(1)和 False(0)

flag = Trueis_ok = 3 > 2

邏輯運算(andornot)、比較運算

複數(complex)

實部 + 虛部(j 表示虛數單位)

z = 3 + 4jz2 = complex(2, 5)

運算(+-*/)、屬性(z.real 實部、z.imag 虛部)

2. 序列類型(有序、可索引)

類型

描述

示例

核心操作

字符串(str)

字符序列,單 / 雙 / 三引號包裹

s = "hello"s2 = '''Python'''

切片(s[0:3])、拼接(s + s2)、方法(s.upper()s.split()

列表(list)

可變序列,元素可重複、類型任意

lst = [1, "a", True, [2,3]]

增(append())、刪(pop())、改(lst[0] = 10)、查(索引 / 切片)

元組(tuple)

不可變序列,元素可重複、類型任意

tup = (1, 2, "b")tup2 = (3,)

切片(tup[1:])、查詢(索引),不可修改元素

3. 集合與映射類型(無序)

類型

描述

示例

核心操作

集合(set)

無序、不重複元素集合,用於去重 / 交集等

s = {1,2,3}s2 = set([2,3,4])

增(add())、刪(remove())、集合運算(& 交集、`

` 並集)

字典(dict)

鍵值對集合(Python 3.7+ 有序)

d = {"name": "Tom", "age": 18}

增(d["gender"] = "M")、刪(del d["age"])、查(d.get("name")

4. 特殊類型

  • None:表示空值,常用於函數返回值、變量初始化(如 x = None
  • 字節串(bytes):二進制數據,如 b"hello"(用於文件 / 網絡傳輸)

二、Python 進制轉換(核心場景)

Python 支持 二進制(0b)、八進制(0o)、十進制、十六進制(0x) 之間的相互轉換,核心通過內置函數實現:

1. 基礎函數説明

函數

功能

示例

bin(x)

十進制 → 二進制(返回帶 0b 前綴的字符串)

bin(10) → '0b1010'

oct(x)

十進制 → 八進制(返回帶 0o 前綴的字符串)

oct(10) → '0o12'

hex(x)

十進制 → 十六進制(返回帶 0x 前綴的字符串)

hex(10) → '0xa'hex(255) → '0xff'

int(x, base=n)

n 進制字符串 → 十進制整數(base 可選,默認 10)

int('1010', 2) → 10int('0xa', 16) → 10

2. 常用進制轉換示例

(1)十進制 ↔ 其他進制

python運行

# 十進制 → 二進制/八進制/十六進制
dec = 25
bin_str = bin(dec)    # '0b11001'
oct_str = oct(dec)    # '0o31'
hex_str = hex(dec)    # '0x19'

# 其他進制 → 十進制(關鍵:用 int() 指定 base)
bin_to_dec = int('11001', 2)    # 25(二進制字符串轉十進制)
oct_to_dec = int('31', 8)       # 25(八進制字符串轉十進制)
hex_to_dec = int('19', 16)      # 25(十六進制字符串轉十進制)
hex_to_dec2 = int('0x19', 16)   # 25(帶前綴也可識別)

(2)非十進制之間直接轉換(間接通過十進制中轉)

Python 無直接轉換函數,需先轉十進制,再轉目標進制:

python運行

# 二進制 → 十六進制(二進制→十進制→十六進制)
bin_str = '11001'
dec = int(bin_str, 2)    # 25
hex_str = hex(dec)       # '0x19'

# 十六進制 → 二進制(十六進制→十進制→二進制)
hex_str = '0xff'
dec = int(hex_str, 16)   # 255
bin_str = bin(dec)       # '0b11111111'

(3)去除進制前綴(如 0b/0x)

用字符串切片或 lstrip()

python運行

bin_str = bin(10)  # '0b1010'
pure_bin = bin_str[2:]  # '1010'(切片去除前2個字符)

hex_str = hex(255)  # '0xff'
pure_hex = hex_str.lstrip('0x')  # 'ff'

(4)補零操作(固定位數)

實際開發中常需固定進制字符串長度(如 8 位二進制),用 zfill() 或格式化字符串:

python


運行

# 二進制補零到 8 位
bin_str = bin(5)[2:]  # '101'
fixed_bin = bin_str.zfill(8)  # '00000101'

# 十六進制補零到 2 位
hex_str = hex(3)[2:]  # '3'
fixed_hex = hex_str.zfill(2)  # '03'

# 格式化字符串更靈活(推薦)
fixed_bin2 = f"{5:08b}"  # '00000101'(:08b 表示8位二進制,不足補0)
fixed_hex2 = f"{3:02x}"  # '03'(:02x 表示2位十六進制,不足補0)

3. 常見問題與注意事項

  • int () 轉換要求:輸入的字符串必須是目標進制的合法字符(如二進制只能是 0/1,十六進制只能是 0-9/a-f/A-F),否則報錯 ValueError。python運行
int('12', 2)  # 報錯!二進制中不能有 '2'
  • 浮點數進制轉換:需先轉整數(如 int(3.14)),再進行進制轉換,否則報錯。
  • 大小寫兼容:十六進制的 a-f 和 A-F 均可,int('0XFF', 16) 與 int('0xff', 16) 結果一致。

三、總結

  1. Python 核心數據類型覆蓋基礎數值、序列、集合、映射,需根據場景選擇(如去重選 set,鍵值對選 dict);
  2. 進制轉換核心依賴 bin()/oct()/hex()(十進制轉其他)和 int(x, base)(其他轉十進制),非十進制間轉換需通過十進制中轉;
  3. 實際開發中常用補零、去前綴操作,格式化字符串(f-string)是高效實現方式。