Python3 基本数据类型完全指南
编程小白也能轻松理解的知识点汇总
本指南将详细解释Python中最常用的基本数据类型,包括数字、字符串、列表、元组、集合和字典。 每种类型都包含通俗易懂的解释、创建方式、常见操作和实用示例。
123
整数(int)
整数就是数学中的整数,可以是正数、负数或零,没有小数点。
创建方式
# 直接赋值
age = 25
temperature = -5
zero = 0
# 从其他类型转换
num = int(“42”) # 字符串转整数 → 42
num2 = int(3.14) # 浮点数转整数 → 3(直接舍去小数部分)
age = 25
temperature = -5
zero = 0
# 从其他类型转换
num = int(“42”) # 字符串转整数 → 42
num2 = int(3.14) # 浮点数转整数 → 3(直接舍去小数部分)
常用操作
- 基本运算:+、-、*、/、//(整除)、%(取余)、**(幂)
- 比较运算:==、!=、<、>、<=、>=
- 数学函数:abs()、pow()、round()、max()、min()
示例:整数运算
a = 10
b = 3
print(a + b) # 13
print(a – b) # 7
print(a * b) # 30
print(a / b) # 3.333…(注意结果是浮点数)
print(a // b) # 3(整除)
print(a % b) # 1(取余)
print(a ** b) # 1000(10的3次方)
b = 3
print(a + b) # 13
print(a – b) # 7
print(a * b) # 30
print(a / b) # 3.333…(注意结果是浮点数)
print(a // b) # 3(整除)
print(a % b) # 1(取余)
print(a ** b) # 1000(10的3次方)
注意:整数可以非常大,Python会自动处理大整数(不像其他语言有最大值限制)
3.14
浮点数(float)
浮点数就是带小数点的数,表示实数(包含小数部分的数)。
创建方式
# 直接赋值
pi = 3.14159
height = 1.75
negative = -0.5
# 科学计数法
big_num = 6.02e23 # 阿伏伽德罗常数
tiny_num = 1.6e-19 # 电子电荷
# 从其他类型转换
pi_str = float(“3.14”) # 字符串转浮点数
pi = 3.14159
height = 1.75
negative = -0.5
# 科学计数法
big_num = 6.02e23 # 阿伏伽德罗常数
tiny_num = 1.6e-19 # 电子电荷
# 从其他类型转换
pi_str = float(“3.14”) # 字符串转浮点数
注意事项
- 浮点数运算可能有精度问题(所有编程语言通病)
- 避免直接比较两个浮点数是否相等(使用范围判断)
示例:浮点数精度问题
num = 0.1 + 0.2
print(num) # 输出:0.30000000000000004
# 正确比较方式
if abs(num – 0.3) < 0.000001:
print(“近似相等”)
print(num) # 输出:0.30000000000000004
# 正确比较方式
if abs(num – 0.3) < 0.000001:
print(“近似相等”)
“abc”
字符串(str)
字符串就是文本数据,由一系列字符组成,用单引号、双引号或三引号包裹。
创建方式
# 单引号或双引号
name = “Alice”
greeting = ‘你好,世界!’
# 三引号(多行字符串)
poem = ”’静夜思
床前明月光
疑是地上霜”’
# 类型转换
age_str = str(25) # 整数转字符串 → “25”
name = “Alice”
greeting = ‘你好,世界!’
# 三引号(多行字符串)
poem = ”’静夜思
床前明月光
疑是地上霜”’
# 类型转换
age_str = str(25) # 整数转字符串 → “25”
常用操作
- 拼接:使用 + 运算符
- 重复:使用 * 运算符
- 索引:获取单个字符
- 切片:获取子字符串
- 常用方法:len()、split()、join()、replace()、strip()
示例:字符串操作
s = “Python编程”
# 索引
print(s[0]) # ‘P’
print(s[-1]) # ‘程’
# 切片
print(s[0:6]) # ‘Python’
print(s[6:]) # ‘编程’
# 方法
print(len(s)) # 8
print(s.upper()) # ‘PYTHON编程’
print(“apple,banana”.split(‘,’)) # [‘apple’, ‘banana’]
# 索引
print(s[0]) # ‘P’
print(s[-1]) # ‘程’
# 切片
print(s[0:6]) # ‘Python’
print(s[6:]) # ‘编程’
# 方法
print(len(s)) # 8
print(s.upper()) # ‘PYTHON编程’
print(“apple,banana”.split(‘,’)) # [‘apple’, ‘banana’]
[ ]
列表(list)
列表是有序的元素集合,可以包含不同类型的数据,用方括号表示。
创建方式
# 空列表
empty_list = []
# 包含元素的列表
numbers = [1, 2, 3, 4, 5]
mixed = [1, “two”, 3.0, True]
# 使用list()函数
list_from_str = list(“hello”) # [‘h’, ‘e’, ‘l’, ‘l’, ‘o’]
empty_list = []
# 包含元素的列表
numbers = [1, 2, 3, 4, 5]
mixed = [1, “two”, 3.0, True]
# 使用list()函数
list_from_str = list(“hello”) # [‘h’, ‘e’, ‘l’, ‘l’, ‘o’]
常用操作
- 索引和切片(与字符串类似)
- 添加元素:append(), insert(), extend()
- 删除元素:remove(), pop(), del
- 排序:sort(), sorted()
- 其他:len(), min(), max(), sum()
示例:列表操作
fruits = [“apple”, “banana”]
# 添加元素
fruits.append(“orange”) # 末尾添加
fruits.insert(1, “kiwi”) # 插入到索引1位置
# 删除元素
fruits.remove(“banana”) # 移除特定元素
popped = fruits.pop(0) # 移除并返回索引0的元素 → “apple”
# 排序
fruits.sort() # 按字母顺序排序
# 添加元素
fruits.append(“orange”) # 末尾添加
fruits.insert(1, “kiwi”) # 插入到索引1位置
# 删除元素
fruits.remove(“banana”) # 移除特定元素
popped = fruits.pop(0) # 移除并返回索引0的元素 → “apple”
# 排序
fruits.sort() # 按字母顺序排序
注意:列表是可变类型,修改列表会改变原对象
( )
元组(tuple)
元组类似列表,但创建后不能修改(不可变),用圆括号表示。
创建方式
# 空元组
empty_tuple = ()
# 包含元素的元组
point = (10, 20)
colors = (“red”, “green”, “blue”)
# 单元素元组(需要加逗号)
single = (42,) # 注意末尾的逗号!
not_a_tuple = (42) # 这不是元组,是整数!
empty_tuple = ()
# 包含元素的元组
point = (10, 20)
colors = (“red”, “green”, “blue”)
# 单元素元组(需要加逗号)
single = (42,) # 注意末尾的逗号!
not_a_tuple = (42) # 这不是元组,是整数!
特点
- 不可变性:创建后不能修改(增删改)
- 比列表更节省内存
- 可用作字典的键(列表不能)
示例:元组使用
# 坐标点
point = (3, 4)
# 解包赋值
x, y = point
print(f”X坐标: {x}, Y坐标: {y}”)
# 字典中使用元组作为键
location_map = {}
location_map[(35, 139)] = “东京”
print(location_map[(35, 139)]) # 输出”东京”
point = (3, 4)
# 解包赋值
x, y = point
print(f”X坐标: {x}, Y坐标: {y}”)
# 字典中使用元组作为键
location_map = {}
location_map[(35, 139)] = “东京”
print(location_map[(35, 139)]) # 输出”东京”
{ }
集合(set)
集合是无序且不重复的元素集合,用大括号表示(但空集合必须用set())。
创建方式
# 空集合(必须用set())
empty_set = set()
# 包含元素的集合
primes = {2, 3, 5, 7}
vowels = {‘a’, ‘e’, ‘i’, ‘o’, ‘u’}
# 从列表创建(去重)
unique_nums = set([1, 2, 2, 3, 3, 3]) # {1, 2, 3}
empty_set = set()
# 包含元素的集合
primes = {2, 3, 5, 7}
vowels = {‘a’, ‘e’, ‘i’, ‘o’, ‘u’}
# 从列表创建(去重)
unique_nums = set([1, 2, 2, 3, 3, 3]) # {1, 2, 3}
常用操作
- 添加元素:add()
- 删除元素:remove(), discard()
- 集合运算:并集(|)、交集(&)、差集(-)、对称差集(^)
- 成员检测:in 关键字
示例:集合操作
A = {1, 2, 3, 4}
B = {3, 4, 5, 6}
print(A | B) # 并集 {1, 2, 3, 4, 5, 6}
print(A & B) # 交集 {3, 4}
print(A – B) # 差集 {1, 2}
print(A ^ B) # 对称差集 {1, 2, 5, 6}
# 添加元素
A.add(5) # A变为 {1, 2, 3, 4, 5}
B = {3, 4, 5, 6}
print(A | B) # 并集 {1, 2, 3, 4, 5, 6}
print(A & B) # 交集 {3, 4}
print(A – B) # 差集 {1, 2}
print(A ^ B) # 对称差集 {1, 2, 5, 6}
# 添加元素
A.add(5) # A变为 {1, 2, 3, 4, 5}
注意:集合中的元素必须是不可变类型(数字、字符串、元组等)
{:}
字典(dict)
字典是键值对的集合,键必须是不可变类型且唯一,用大括号表示。
创建方式
# 空字典
empty_dict = {}
# 包含键值对的字典
student = {
“name”: “张三”,
“age”: 20,
“courses”: [“数学”, “英语”]
}
# 使用dict()函数
person = dict(name=”李四”, age=25)
empty_dict = {}
# 包含键值对的字典
student = {
“name”: “张三”,
“age”: 20,
“courses”: [“数学”, “英语”]
}
# 使用dict()函数
person = dict(name=”李四”, age=25)
常用操作
- 访问值:dict[key] 或 dict.get(key)
- 添加/修改:dict[key] = value
- 删除:del dict[key] 或 pop()
- 获取所有键:keys()
- 获取所有值:values()
- 获取键值对:items()
示例:字典操作
# 创建字典
capitals = {“中国”: “北京”, “日本”: “东京”, “法国”: “巴黎”}
# 访问
print(capitals[“中国”]) # “北京”
# 添加/修改
capitals[“美国”] = “华盛顿” # 添加新条目
capitals[“法国”] = “巴黎” # 修改现有条目
# 遍历
for country, capital in capitals.items():
print(f”{country}的首都是{capital}”)
capitals = {“中国”: “北京”, “日本”: “东京”, “法国”: “巴黎”}
# 访问
print(capitals[“中国”]) # “北京”
# 添加/修改
capitals[“美国”] = “华盛顿” # 添加新条目
capitals[“法国”] = “巴黎” # 修改现有条目
# 遍历
for country, capital in capitals.items():
print(f”{country}的首都是{capital}”)
注意:字典键必须是不可变类型(字符串、整数、元组等),列表不能作为键
数据类型总结比较
类型 | 可变性 | 有序性 | 元素要求 | 使用场景 |
---|---|---|---|---|
列表(list) | 可变 | 有序 | 任意类型 | 需要修改的元素序列 |
元组(tuple) | 不可变 | 有序 | 任意类型 | 不需要修改的数据序列 |
集合(set) | 可变 | 无序 | 不可变类型 | 去重、成员检测、集合运算 |
字典(dict) | 可变 | 无序(3.7+有序) | 键:不可变类型 值:任意类型 |
键值对数据存储 |
学习建议:作为编程小白,建议先重点掌握字符串、列表和字典这三种最常用的数据类型