Python 变量和数据类型
概述
变量和数据类型是编程的基础概念。在 Python 中,变量用于存储数据,而数据类型决定了变量可以存储的数据种类以及可以对这些数据执行的操作。
Python 变量用于存储数据,数据类型决定操作方式。本文介绍数字、字符串、布尔、None 等基本类型,以及列表、元组、字典、集合等复合类型。通过代码示例演示变量声明、访问、修改及类型转换,对比各类型的可变性、有序性等特性,帮助初学者掌握 Python 基础数据结构。

变量和数据类型是编程的基础概念。在 Python 中,变量用于存储数据,而数据类型决定了变量可以存储的数据种类以及可以对这些数据执行的操作。
数据类型 ├── 基本数据类型 │ ├── 数字类型 (Numbers) │ ├── 字符串类型 (String) │ ├── 布尔类型 (Boolean) │ └── None 类型 └── 复合数据类型 ├── 列表类型 (List) ├── 元组类型 (Tuple) ├── 字典类型 (Dictionary) └── 集合类型 (Set)
#!/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+ 特性,在 Python 3.12 中仍然适用)
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__}")
| 特性 | 列表 | 元组 | 字典 | 集合 |
|---|---|---|---|---|
| 可变性 | 可变 | 不可变 | 可变 | 可变 |
| 有序性 | 有序 | 有序 | 有序 | 无序 |
| 允许重复 | 允许 | 允许 | 值允许,键不允许 | 不允许 |
| 索引方式 | 数字索引 | 数字索引 | 键索引 | 无索引 |

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online