LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

30天学会Python编程:3. Python数据类型详解

admin
2025年7月17日 21:47 本文热度 13

3.1 数据类型概述

3.1.1 数据类型分类

Python数据类型可分为两大类:

3.1.2 类型特性对比

表3-1 Python主要数据类型对比

类型
可变性
有序性
重复性
示例
int
不可变
-
-
123
float
不可变
-
-
3.14
str
不可变
有序
允许
"hello"
list
可变
有序
允许
[1, 2, 3]
tuple
不可变
有序
允许
(1, 2, 3)
dict
可变
无序
key唯一
{"a": 1}
set
可变
无序
元素唯一
{1, 2, 3}

3.2 数值类型

3.2.1 整数(int)

特性

  • 任意大小(仅受内存限制)
  • 支持十进制、二进制(0b)、八进制(0o)、十六进制(0x)

操作示例

num = 123_456_789  # 使用下划线提高可读性
binary = 0b1010    # 二进制 10
hex_num = 0xFF     # 十六进制 255

# 类型转换
int("42")          # 字符串转整数
int(3.99)          # 浮点数转整数(截断)

3.2.2 浮点数(float)

特性

  • 双精度浮点数(64位)
  • 可能存在精度问题(如0.1 + 0.2 ≠ 0.3)

科学计数法

a = 1.23e-5  # 0.0000123
b = 2.5e6    # 2500000.0

精确计算建议

from decimal import Decimal
print(Decimal('0.1') + Decimal('0.2'))  # 精确计算

3.2.3 复数(complex)

c = 3 + 4j
print(c.real)  # 实部 3.0
print(c.imag)  # 虚部 4.0
print(c.conjugate())  # 共轭复数 (3-4j)

3.3 布尔类型(bool)

3.3.1 基本使用

is_active = True
is_admin = False

# 逻辑运算
print(True and False)  # False
print(True or False)   # True
print(not True)        # False

3.3.2 布尔上下文

真值测试规则

  • 假值:False, None, 0, "", [], (), {}, set()
  • 其余均为真值

应用示例

name = ""
if not name:
    print("姓名不能为空")

3.4 字符串(str)

3.4.1 字符串创建

s1 = '单引号'
s2 = "双引号"
s3 = """多行
字符串"""

s4 = r"原始字符串\n不转义"  # raw string

3.4.2 常用操作

索引与切片

text = "Python"
print(text[0])    # 'P' (正向索引)
print(text[-1])   # 'n' (负向索引)
print(text[1:4])  # 'yth' (切片)

常用方法

# 字符串方法链式调用
result = " Hello World! ".strip().lower().replace("world""Python")
print(result)  # "hello python!"

格式化方法

# f-string (Python 3.6+)
name = "Alice"
print(f"Hello, {name}!"

# format方法
print("{} is {} years old".format(name, 25))

3.5 复合数据类型

3.5.1 列表(list)

特性

  • 可变有序序列
  • 可包含不同类型元素

操作示例

# 列表创建
nums = [1232]
mixed = [1"a"True, [23]]

# 常用操作
nums.append(4)       # 追加元素
nums.insert(11.5)  # 插入元素
nums.remove(2)       # 删除第一个匹配项
nums.pop()           # 移除并返回最后一个元素

3.5.2 元组(tuple)

特性

  • 不可变有序序列
  • 常用于函数返回多个值

特殊语法

single = (1,)    # 单元素元组必须有逗号
empty = ()       # 空元组
a, b = (12)    # 元组解包

3.5.3 字典(dict)

特性

  • 键值对集合
  • 键必须是不可变类型

操作示例

# 字典创建
person = {"name""Alice""age"25}
scores = dict(math=90, physics=85)

# 常用操作
person["email"] = "alice@example.com"  # 添加/修改
age = person.get("age"0)             # 安全获取
for key, value in person.items():      # 遍历
    print(f"{key}{value}")

3.5.4 集合(set)

特性

  • 唯一元素的无序集合
  • 支持集合运算

操作示例

a = {123}
b = {234}

# 集合运算
print(a | b)  # 并集 {1, 2, 3, 4}
print(a & b)  # 交集 {2, 3}
print(a - b)  # 差集 {1}

3.6 类型转换与检查

3.6.1 显式类型转换

int("123")      # 字符串→整数
float("3.14")   # 字符串→浮点数
str(100)        # 数字→字符串
list("abc")     # 字符串→列表 ['a', 'b', 'c']
tuple([1,2,3])  # 列表→元组 (1, 2, 3)
set([1,2,2,3])  # 列表→集合 {1, 2, 3}

3.6.2 类型检查

type(123is int            # 类型检查
isinstance("hello"str)    # 更推荐的检查方式
issubclass(boolint)       # 检查继承关系 (在Python中bool是int的子类)

3.7 可变与不可变对象

3.7.1 概念解析

3.7.2 实际影响

不可变对象示例

a = "Hello"
b = a
a += " World"
print(a)  # "Hello World"
print(b)  # "Hello" (b未改变)

可变对象示例

lst1 = [123]
lst2 = lst1
lst1.append(4)
print(lst2)  # [1, 2, 3, 4] (lst2也被修改)

3.8 数据类型综合应用

案例1:学生成绩统计

# 学生成绩处理系统
students = [
    {"name""Alice""scores": [859078]},
    {"name""Bob""scores": [928895]},
    {"name""Charlie""scores": [788082]}
]

# 计算平均分
for student in students:
    scores = student["scores"]
    avg = sum(scores) / len(scores)
    student["average"] = round(avg, 2)  # 保留两位小数

# 按平均分排序
sorted_students = sorted(students, 
                        key=lambda x: x["average"], 
                        reverse=True)

# 输出结果
for i, student inenumerate(sorted_students, 1):
    print(f"{i}{student['name']}{student['average']}")

案例2:单词频率统计

def word_frequency(text):
    """统计文本中单词出现频率
    
    Args:
        text (str): 输入文本
        
    Returns:
        dict: 单词到频率的映射
    """

    words = text.lower().split()
    freq = {}
    
    for word in words:
        # 去除标点符号
        word = word.strip(".,!?")
        if word:
            freq[word] = freq.get(word, 0) + 1
    
    return freq

text = "Hello world. Hello Python. Python is great!"
print(word_frequency(text))
# 输出:{'hello': 2, 'world': 1, 'python': 2, 'is': 1, 'great': 1}

3.9 数据简要图谱

3.10 学习总结

  1. 核心要点

    • 掌握各种数据类型的特性和适用场景
    • 理解可变与不可变对象的区别
    • 熟练使用字符串和集合操作
    • 掌握类型转换与检查方法
  2. 实践建议

    • 根据需求选择合适的数据结构
    • 使用字典处理键值对数据
    • 优先选择不可变对象作为字典键
    • 注意浮点数的精度问题
  3. 进阶方向

    • collections模块中的高级数据结构
    • 数据类的使用(Python 3.7+)
    • 类型注解(Type Hints)
    • 内存视图(memoryview)
  4. 常见陷阱

    • 浅拷贝与深拷贝问题
    • 字典键的顺序依赖(Python 3.6前无序)
    • 浮点数比较的精度问题
    • 可变默认参数的风险


阅读原文:原文链接


该文章在 2025/7/18 10:29:41 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved