一、Python基本数据类型总览
1. 数据类型分类图谱
2. 数据类型特性对比表
表1.2.1 Python基本数据类型对比
二、数值类型详解
1. 整数(int)特性:
任意大小(仅受内存限制)
支持不同进制表示:
10 # 十进制
0b1010 # 二进制 (10)
0o12 # 八进制 (10)
0xA # 十六进制 (10)
常用操作:
# 算术运算
x = 10 + 3 # 13
y = 10 // 3 # 整除 (3)
z = 10 % 3 # 取模 (1)
# 位运算
a = 0b1100 & 0b1010 # 0b1000 (8)
b = 0b1100 | 0b1010 # 0b1110 (14)
2. 浮点数(float)
注意事项:
# 精度问题示例
0.1 + 0.2 == 0.3 # False
# 解决方案
from decimal import Decimal
Decimal('0.1') + Decimal('0.2') == Decimal('0.3') # True
特殊值:
float('inf') # 正无穷
float('-inf') # 负无穷
float('nan') # 非数字
三、字符串(str)深入
1. 字符串创建方式
s1 = '单引号'
s2 = "双引号"
s3 = '''三引号
可以跨行'''
s4 = r"原始字符串\n不转义" # 输出原始字符
s5 = f"f-string {s1}" # 格式化字符串(Python 3.6+)
2. 字符串常用方法
表1.2.2 字符串常用方法
3. 字符串格式化对比
# 旧式格式化
"%s %d" % ("age", 20)
# str.format()
"{} {}".format("age", 20)
# f-string (推荐)
name = "Alice"
f"Hello, {name}"
四、变量与赋值机制
1. 变量命名规则
2. Python赋值机制
可变与不可变类型差异:
# 不可变类型示例
x = 10
y = x
x = 20
print(y) # 输出10
# 可变类型示例
a = [1, 2]
b = a
a.append(3)
print(b) # 输出[1, 2, 3]
多重赋值技巧:
# 交换变量值
x, y = 10, 20
x, y = y, x
# 解包赋值
data = ("Alice", 25, "Beijing")
name, age, city = data
五、类型转换与检查
1. 显式类型转换
int("10") # 字符串整数
float(3) # 整数浮点数
str(123) # 数字字符串
list("abc") # 字符串列表
tuple([1,2,3]) # 列表元组
2. 类型检查方法
type(10) isint# 精确类型检查
isinstance(10, (int, float)) # 支持继承检查
# Python 3.10+ 类型匹配
defcheck_type(val):
match val:
caseint(): print("整数")
casestr(): print("字符串")
case _: print("其他类型")
六、常量与枚举
1. 常量定义惯例
# 约定俗成的常量定义
MAX_CONNECTIONS = 100
DEFAULT_TIMEOUT = 30.0
2. 枚举类型(enum)
from enum import Enum, auto
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
# 或者使用auto()
WHITE = auto()
print(Color.RED) # Color.RED
print(Color.RED.value) # 1
七、实践案例
1. 类型转换工具函数
def convert_type(value, target_type):
"""安全类型转换函数
Args:
value: 要转换的值
target_type: 目标类型(int/float/str等)
Returns:
转换后的值或None(转换失败时)
"""
try:
return target_type(value)
except (ValueError, TypeError):
print(f"无法将 {value} 转换为 {target_type.__name__}")
returnNone
# 使用示例
num = convert_type("3.14", float) # 返回3.14
invalid = convert_type("abc", int) # 打印警告并返回None
2. 字符串处理工具集
def process_string(text):
"""字符串处理工具
Args:
text: 输入字符串
Returns:
处理后的字符串和统计信息
"""
ifnotisinstance(text, str):
raise TypeError("输入必须是字符串")
stats = {
'length': len(text),
'words': len(text.split()),
'digits': sum(c.isdigit() for c in text),
'letters': sum(c.isalpha() for c in text)
}
processed = text.strip().title()
return processed, stats
# 使用示例
result, info = process_string(" hello world 123 ")
print(result) # "Hello World 123"
print(info) # {'length': 16, 'words': 3, 'digits': 3, 'letters': 10}
八、常见问题与调试
1. 类型相关错误排查表
表1.2.3 常见类型错误及解决
2. 类型注解(Python 3.5+)
def greet(name: str, age: int = 20) -> str:
"""类型注解示例
Args:
name: 用户名
age: 用户年龄
Returns:
问候字符串
"""
return f"{name} is {age} years old"
# 使用mypy进行静态检查
# pip install mypy
# mypy script.py
学习要点总结
重要提示与记忆点:
Python是强类型动态类型语言
理解可变/不可变类型的区别至关重要
字符串是不可变序列,有多种格式化方式
变量是对象的引用而非存储本身
类型转换需处理可能的异常情况
Python 3.5+ 支持类型注解提高代码可维护性
练习建议:
编写温度转换程序(℃/℉/K互转)
实现字符串统计工具(字符/词/行数统计)
创建类型安全的计算器(处理各种输入类型)
开发密码强度检测工具(基于字符类型分析)
更新日期:2025-05-20
交流讨论:欢迎在评论区留言!
重要提示:本文主要是记录自己的学习与实践过程,所提内容或者观点仅代表个人意见,只是我以为的,不代表完全正确,不喜请勿关注。