Python 数据类型全解:编程的基石

在 Python 中,一切皆对象。而数据类型,决定了这些对象能做什么,不能做什么。

Python 的数据类型非常丰富且灵活(动态类型),不需要像 C 或 Java 那样在声明变量时指定类型。本文将带你深入理解 Python 的核心数据类型。

  1. 数值类型 (Numbers)

这是最直观的类型,用于数学计算。

整数 (int)

不带小数点的数字。Python 3 的整数没有大小限制(只要内存够大)。

age = 25
count = -100
big_num = 1000000000000000000 # 自动处理大数

浮点数 (float)

带小数点的数字。注意,浮点数计算可能会有微小的精度误差(计算机二进制存储导致的)。

price = 19.99
pi = 3.14159

科学计数法

sci = 1.2e3 # 等于 1200.0

布尔值 (bool)

逻辑上的“真”与“假”,只有两个值:True 和 False。

注意:在数学运算中,True 等于 1,False 等于 0。

is_active = True
is_admin = False
print(True + 1) # 输出 2 (不推荐这样写,但要知道原理)

  1. 序列类型 (Sequences) - 有序的数据集合

序列中的每个元素都有一个索引(Index),从 0 开始。

字符串 (str)

用来存储文本。可以用单引号 ' 或双引号 " 包裹。

name = "Python"
message = 'Hello, World!'

常用操作

print(name[0]) # 索引: 'P'
print(name[1:4]) # 切片: 'yth' (包头不包尾)
print(name + " 3.9") # 拼接

列表 (list) - 最常用

可变的有序序列。可以存任何类型的数据,相当于其他语言的数组,但更灵活。

fruits = ["apple", "banana", "cherry"]
mixed = [1, "hello", 3.14, True] # 可以混装

增删改查

fruits.append("orange") # 增加
fruits[0] = "pear" # 修改
del fruits[1] # 删除

元组 (tuple)

不可变的有序序列。一旦创建,里面的元素就不能改。通常用于存储不希望被修改的配置数据。

point = (10, 20)
colors = ("red", "green", "blue")

point[0] = 5 # 报错!TypeError: 'tuple' object does not support item assignment

为什么要有元组?

安全:保证数据不被意外修改。

性能:元组比列表占用内存更小,创建速度更快。

  1. 映射与集合类型 (Mapping & Set)

字典 (dict) - 最常用

键值对 (Key-Value) 的集合。类似于查字典,通过“键”快速找到“值”。

键 (Key):必须是不可变类型(如字符串、数字、元组),且唯一。

值 (Value):可以是任意类型。

user = {
"name": "Tom",
"age": 30,
"skills": ["Python", "Django"]
}

print(user["name"]) # 查: 'Tom'
user["age"] = 31 # 改
user["city"] = "Beijing" # 增

集合 (set)

无序、不重复的元素集合。主要用于去重和数学集合运算(交集、并集)。

ids = {101, 102, 103, 101}
print(ids) # 输出 {101, 102, 103},自动去重了

A = {1, 2, 3}
B = {3, 4, 5}
print(A & B) # 交集: {3}
print(A | B) # 并集: {1, 2, 3, 4, 5}

  1. 核心概念:可变 (Mutable) vs 不可变 (Immutable)

这是面试和 Debug 时的重灾区。

类型

可变性

意味着什么?

List, Dict, Set

可变

可以在原地修改内容(id 不变)。

Int, Float, Str, Tuple

不可变

修改等于创建新对象。

示例说明:

不可变类型 (str)

s = "hello"
s.upper() # 返回 "HELLO",但 s 本身没变!
print(s) # 输出 "hello"
s = s.upper() # 必须重新赋值给 s

可变类型 (list)

lst = [1, 2, 3]
lst.append(4) # 直接修改了 lst
print(lst) # 输出 [1, 2, 3, 4]

  1. 类型转换 (Type Conversion)

Python 提供了内置函数在不同类型间转换。

显式转换

num_str = "123"
num = int(num_str) # 字符串 -> 整数
price = float("9.9") # 字符串 -> 浮点数
s = str(100) # 整数 -> 字符串

列表转元组(常用于保护数据)

my_list = [1, 2, 3]
my_tuple = tuple(my_list)

列表去重(转集合再转回来)

raw_data = [1, 2, 2, 3, 1]
clean_data = list(set(raw_data)) # [1, 2, 3]

  1. 如何检查类型?

x = 10

方法1: type() - 查看类型

print(type(x)) # <class 'int'>

方法2: isinstance() - 判断类型 (推荐)

if isinstance(x, int):
print("x 是整数")

总结

数据类型

关键字

例子

特点

整数

int

10

整数运算

浮点数

float

3.14

小数运算

字符串

str

"Hello"

文本,不可变

列表

list

[1, 2]

有序,可变,啥都能装

元组

tuple

(1, 2)

有序,不可变,只读

字典

dict

{"k": "v"}

键值对,查找快

集合

set

{1, 2}

无序,去重

熟练掌握这些类型及其特性(特别是可变性),是你成为 Python 高手的第一步。

posted @ 2025-12-12 17:36  GreenBoos2025  阅读(3)  评论(0)    收藏  举报