第三课 Python中的简单数据类型

一、数据类型简介

什么是数据类型?

就像你生活中的物品有不同的种类(比如:水果、书籍、衣服),在编程中,数据(信息)也有不同的"种类",这些"种类"就叫做数据类型

数据类型是编程语言的核心基础,理解它为什么存在至关重要。让我们通过三个关键角度来探索数据类型的必要性:

  1. 计算机的语言障碍(底层需求)

    计算机本质上只能理解二进制(0和1),但人类需要处理丰富多样的信息:

    python 复制代码
    # 同一段二进制数据的不同解释
    b'\x41\x42'  # 十六进制:41 42
    
    # 作为数字解释 → 十进制: 16706
    16706
    
    # 作为文本解释 → 字母: "AB"
    "AB"
    
    # 作为指令解释 → 计算机操作
    "MOV AX, BX"

    核心问题 :同一段二进制数据(如01000001)可以表示:

    • 数字:65(十进制)
    • 字符:'A'

    • 布尔值:True

    • 内存地址等

    数据类型就是翻译规则,告诉计算机如何解释二进制数据。

  2. 现实世界的多样性(应用需求)

    我们处理的信息天然具有不同特性:

    信息类型 示例值 所需操作
    数量 100, 3.14 加减乘除
    文本 "你好" 拼接、分割
    真假值 True/False 逻辑判断

    没有数据类型会导致

    python 复制代码
    # 假设没有数据类型区分
    "10" + 5  # 字符串+数字 → 应该报错还是转换?

    数据类型确保操作符合逻辑:

    • 数字能进行数学运算
    • 文本能进行字符串处理
    • 布尔值用于条件判断
  3. 内存管理的需要(效率需求)

    不同类型数据需要不同大小的存储空间:

    类型 内存大小 示例
    布尔值 1字节 True
    整数 4字节 100
    浮点数 8字节 3.14
    字符串 变长 "Hello"

    没有数据类型会导致内存浪费

    python 复制代码
    # 假设所有数据都按最大可能分配空间
    存储数字5 → 分配128位(实际只需4位)
    存储文本"你好,今天天气真好啊,我觉得可以出去走走" → 分配128位(可能不够)

    数据类型让计算机能:

    1. 精确分配内存 → 避免浪费
    2. 高效检索数据 → 知道数据边界
    3. 优化处理速度 → 专用处理指令

​ 数据类型不是限制,而是让计算机理解人类意图的翻译规则。就像现实世界中,我们用不同容器装不同物品(水杯装水、书包装书),数据类型让计算机能正确处理各种信息。

二、数字(Numbers)

整数(int) 就是我们平时用的数:1、2、3、100、-5等。 类比:你有3个苹果,这个"3"就是一个整数。

浮点数(float) 带有小数点的数,比如:3.14、0.5、-2.7。 类比:每个苹果0.5公斤,这个"0.5"就是一个小数。

复数(complex) 一般用不到

三、字符串(String)

字符串就是用文字表达的内容,比如:"你好","Python","12345"(注意:这里的12345是作为文本,而不是数字!)。

类比:你的名字"张三",就是一个字符串。

四、布尔(Bool)

生活中我们经常做判断:灯是"开"还是"关"?问题"对"还是"错"?比赛"赢"了还是"输"了? 在Python里,布尔值 (bool) 就是专门用来表示这种 ​​只有两种可能结果​​ 的数据类型!它只有两个值:

  • True - 代表"真"、"是"、"成立"、"开"...
  • False - 代表"假"、"否"、"不成立"、"关"...

想象你要写一个程序:

  • "如果用户登录成功 了,就显示欢迎信息。" (登录成功 这个状态,最终会变成 TrueFalse)
  • "检查年龄是否大于等于 18岁。" (大于等于18岁 这个判断,结果也是 TrueFalse)
  • "灯泡的开关是否打开 ?" (状态就是 TrueFalse) 布尔值就是程序用来做 ​决策​​控制流程​ 的基石。没有它,程序就无法根据条件做不同的事情。

本质上,True 对应着数字 1False 对应着数字 0

相关推荐
冬天给予的预感2 小时前
DAY 54 Inception网络及其思考
网络·python·深度学习
钢铁男儿2 小时前
PyQt5高级界而控件(容器:装载更多的控件QDockWidget)
数据库·python·qt
亿牛云爬虫专家6 小时前
Kubernetes下的分布式采集系统设计与实战:趋势监测失效引发的架构进化
分布式·python·架构·kubernetes·爬虫代理·监测·采集
蹦蹦跳跳真可爱58910 小时前
Python----OpenCV(图像増强——高通滤波(索贝尔算子、沙尔算子、拉普拉斯算子),图像浮雕与特效处理)
人工智能·python·opencv·计算机视觉
nananaij10 小时前
【Python进阶篇 面向对象程序设计(3) 继承】
开发语言·python·神经网络·pycharm
雷羿 LexChien10 小时前
从 Prompt 管理到人格稳定:探索 Cursor AI 编辑器如何赋能 Prompt 工程与人格风格设计(上)
人工智能·python·llm·编辑器·prompt
敲键盘的小夜猫11 小时前
LLM复杂记忆存储-多会话隔离案例实战
人工智能·python·langchain
高压锅_122011 小时前
Django Channels WebSocket实时通信实战:从聊天功能到消息推送
python·websocket·django
胖达不服输12 小时前
「日拱一码」020 机器学习——数据处理
人工智能·python·机器学习·数据处理
吴佳浩12 小时前
Python入门指南-番外-LLM-Fingerprint(大语言模型指纹):从技术视角看AI开源生态的边界与挑战
python·llm·mcp