跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python算法

Python 变量与数据类型核心指南

Python 变量用于存储数据,数据类型决定操作方式。涵盖数字、字符串、布尔值及列表、元组、字典、集合等核心结构。重点解析可变性与不可变性的区别,展示类型转换的实际用法,并提供特性对比表辅助理解。通过实战代码演示变量声明、访问及常见操作,帮助开发者掌握基础语法与最佳实践。

链路追踪发布于 2026/3/29更新于 2026/6/214 浏览
Python 变量与数据类型核心指南

Python 变量与数据类型核心指南

概述

变量和数据类型是编程的基石。在 Python 中,变量就像是一个个容器,用来存储数据;而数据类型则决定了这个容器能装什么、以及能对里面的数据做什么操作。

数据类型概览

Python 的数据类型主要分为基本类型和复合类型两大类:

数据类型 ├── 基本数据类型 │ ├── 数字类型 (Numbers) │ ├── 字符串类型 (String) │ ├── 布尔类型 (Boolean) │ └── None 类型 └── 复合数据类型 ├── 列表类型 (List) ├── 元组类型 (Tuple) ├── 字典类型 (Dictionary) └── 集合类型 (Set)

实战代码示例

下面我们通过一段完整的代码来演示这些类型的声明、使用及特性。注意观察 type() 函数的输出,它能帮你确认变量的实际类型。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# 1. 数字类型 (Numbers)
print("=== 数字类型 ===")
# 整数 (Integer)
age = 25
print(f"整数示例 - 年龄:{age} (类型:{type(age)})")

# 浮点数 (Float)
height = 175.5
print(f"浮点数示例 - 身高:{height}cm (类型:{type(height)})")

# 复数 (Complex)
complex_num = 3 + 4j
print(f"复数示例:{complex_num} (类型:{type(complex_num)})")

# 布尔值 (Boolean) - 实际上是 int 的子类
is_student = True
is_employed = False
print(f"布尔值示例 - 是学生:{is_student} (类型:{type(is_student)})")
print(f"布尔值示例 - 已就业:{is_employed} (类型:{type(is_employed)})")
print("\n")

# 2. 字符串类型 (String)
print("=== 字符串类型 ===")
# 单引号字符串
name = '张三'
print(f"单引号字符串:{name}")

# 双引号字符串
message = "Hello, World!"
print(f"双引号字符串:{message}")

# 三引号字符串(多行字符串)
multiline_text = """
这是一个 多行 字符串示例
"""
print(f"三引号字符串:{multiline_text}")

# 字符串格式化 (f-string, Python 3.6+ 特性)
formatted_str = f"姓名:{name}, 年龄:{age}"
print(f"F-string 格式化:{formatted_str}")
print("\n")

# 3. 列表类型 (List) - 可变有序序列
print("=== 列表类型 ===")
fruits = ['苹果', '香蕉', '橙子']
print(f"水果列表:{fruits} (类型:{type(fruits)})")

# 访问列表元素
print(f"第一个水果:{fruits[0]}")

# 修改列表元素
fruits[1] = '葡萄'
print(f"修改后的水果列表:{fruits}")

# 添加元素
fruits.append('草莓')
print(f"添加草莓后的列表:{fruits}")
print("\n")

# 4. 元组类型 (Tuple) - 不可变有序序列
print("=== 元组类型 ===")
coordinates = (10, 20)
print(f"坐标元组:{coordinates} (类型:{type(coordinates)})")

# 元组解包
x, y = coordinates
print(f"解包后 - x: {x}, y: {y}")
print("\n")

# 5. 字典类型 (Dictionary) - 键值对集合
print("=== 字典类型 ===")
person = {'name': '李四', 'age': 30, 'city': '北京'}
print(f"人员信息字典:{person} (类型:{type(person)})")

# 访问字典值
print(f"姓名:{person['name']}")

# 添加新的键值对
person['occupation'] = '工程师'
print(f"添加职业后的字典:{person}")
print("\n")

# 6. 集合类型 (Set) - 无序不重复元素集合
print("=== 集合类型 ===")
unique_numbers = {1, 2, 3, 3, 4, 4, 5}
print(f"唯一数字集合:{unique_numbers} (类型:{type(unique_numbers)}, 注意重复元素被去除)")

# 集合操作
set_a = {1, 2, 3}
set_b = {3, 4, 5}
union_result = set_a | set_b
print(f"并集:{union_result}")
intersection_result = set_a & set_b
print(f"交集:{intersection_result}")
print("\n")

# 7. 类型转换 (Type Conversion)
print("=== 类型转换 ===")
str_num = "123"
int_num = int(str_num)
print(f"字符串 '{str_num}' 转整数:{int_num} (类型:{type(int_num)})")

num = 456
str_from_num = str(num)
print(f"整数 {num} 转字符串:'{str_from_num}' (类型:{type(str_from_num)})")

my_list = [1, 2, 3]
my_tuple = tuple(my_list)
print(f"列表 {my_list} 转元组:{my_tuple} (类型:{type(my_tuple)})")

original_tuple = ('a', 'b', 'c')
new_list = list(original_tuple)
print(f"元组 {original_tuple} 转列表:{new_list} (类型:{type(new_list)})")
print("\n")

# 8. None 类型
print("=== None 类型 ===")
result = None
print(f"None 值:{result} (类型:{type(result)})")
print("\n")

# 9. 查看变量类型
print("=== 查看变量类型 ===")
variations = [age, height, name, is_student, fruits, coordinates, person, unique_numbers]
for i, var in enumerate(variations, 1):
    print(f"变量 {i}: 值={var}, 类型={type(var).__name__}")

数据类型特性对比

理解不同数据类型的底层特性,对于编写高效且无 Bug 的代码至关重要。下表总结了核心差异:

特性列表 (List)元组 (Tuple)字典 (Dict)集合 (Set)
可变性可变不可变可变可变
有序性有序有序有序 (3.7+)无序
允许重复允许允许值允许,键不允许不允许
索引方式数字索引数字索引键索引无索引

提示:如果你需要存储一组不会改变的数据(如配置项),优先使用元组,因为它更安全且性能略优;如果需要频繁增删改查,列表或字典更合适。

核心总结

  1. 变量即容器:变量名只是指向内存中数据的引用,重新赋值会指向新对象。
  2. 类型决定行为:不同数据类型支持的操作不同,例如列表可追加,元组不可变。
  3. 可变与不可变:这是 Python 内存管理的关键。不可变对象(如数字、字符串、元组)在修改时会创建新对象,而可变对象(如列表、字典)会在原地址修改。
  4. 类型转换:int(), str(), list(), tuple() 等函数是处理数据时的常用工具,但要注意转换失败的风险。

动手建议

  • 运行上述代码,尝试修改其中的数值,观察输出变化。
  • 尝试将列表转换为元组后再修改元素,看看会发生什么错误。
  • 练习不同类型的混合运算,比如字符串拼接和数字加法。
  • 在实际项目中,根据数据结构的特点选择最合适的类型,避免滥用。

目录

  1. Python 变量与数据类型核心指南
  2. 概述
  3. 数据类型概览
  4. 实战代码示例
  5. -- coding: utf-8 --
  6. 1. 数字类型 (Numbers)
  7. 整数 (Integer)
  8. 浮点数 (Float)
  9. 复数 (Complex)
  10. 布尔值 (Boolean) - 实际上是 int 的子类
  11. 2. 字符串类型 (String)
  12. 单引号字符串
  13. 双引号字符串
  14. 三引号字符串(多行字符串)
  15. 字符串格式化 (f-string, Python 3.6+ 特性)
  16. 3. 列表类型 (List) - 可变有序序列
  17. 访问列表元素
  18. 修改列表元素
  19. 添加元素
  20. 4. 元组类型 (Tuple) - 不可变有序序列
  21. 元组解包
  22. 5. 字典类型 (Dictionary) - 键值对集合
  23. 访问字典值
  24. 添加新的键值对
  25. 6. 集合类型 (Set) - 无序不重复元素集合
  26. 集合操作
  27. 7. 类型转换 (Type Conversion)
  28. 8. None 类型
  29. 9. 查看变量类型
  30. 数据类型特性对比
  31. 核心总结
  32. 动手建议
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • C++ 异常处理机制:异常捕获、自定义异常与实战应用
  • Vivado 工程版本管理实战:Git 配置与重建指南
  • Python 企业级反爬虫核心技巧与风控规避策略
  • 基于 OpenClaw 与 Open WebUI 的企业多部门 AI 平台搭建及 Docker 部署指南
  • LeetCode 202. 快乐数:快慢指针判环解法
  • JavaScript 表单验证禁用与选择框编程详解
  • StarUML 6.3.3 配置指南:汉化、激活与 C++ 扩展搭建
  • Unity+AI 使用自然语言制作小游戏:飞翔的牛马
  • 二分答案专题实战:木材加工与砍树问题详解
  • 单链表核心操作全实现:查找、插入与删除的深度解析
  • Spring Boot 日志体系详解与实战配置指南
  • Seedream 4.0 企业级图像生成能力与应用场景深度解析
  • 二分查找算法实战:x 的平方根与搜索插入位置
  • NestJS 接口响应 Message 编写规范与 API 提示标准化
  • .NET 集成 GoView 低代码可视化大屏实战指南
  • ClawdBot 实战:树莓派 4 运行 OCR/Whisper/vLLM 实现 15 人并发无卡顿
  • 分布式文件系统 HDFS:存储原理详解
  • C++ 模板编程详解:从基础到元编程
  • 常见代码托管平台对比:极狐 GitLab、GitLab、GitHub 与 Gitee
  • SDXL Prompt Styler:提示词风格化增强实战指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online