TheZTHEZ / UNDERSTANDING FIRST
Python 入门入门16 分钟阅读

数据类型:认识不同的数据

识别整数、浮点数、字符串与布尔值,学会显式转换并理解转换失败。

在浏览器中练习 →进度只保存在本机。

学习目标

  • 识别 int、float、str、bool。
  • 用 type 查看对象类型。
  • 区分数字与表示数字的文字。

概念解释

数据类型描述对象可以参与哪些操作。int 表示整数;float 表示浮点数,适合近似表达带小数的数值;str 表示字符串;bool 只有 True 和 False,表示判断结果。True、False 的首字母必须大写。Python 还有 None 等值,本轮先把它理解为“没有具体结果”,暂不依赖它完成练习。

“18” 是字符串,18 是整数。两个字符串相加会拼接文字;两个整数相加会算术求和。Python 不会在所有情形下猜测你的意图,因此 “18” + 1 会报类型错误。int(“18”) 可以把有效的整数文字转换为整数;int(“十八”) 无法完成转换,会报 ValueError。

float 使用二进制近似表示,不适合期待所有十进制小数都精确相等,例如 0.1 + 0.2 可能显示为 0.30000000000000004。这里不是 Python 算错,而是表示方式的限制;基础练习先理解现象,后续数据课程再讨论容差与精度。

完整代码示例

将下面代码完整复制到运行器,先运行原例,再一次只修改一个地方。

age = 18
height = 1.72
name = "林同学"
is_beginner = True
print(type(age))
print(type(height))
print(type(name))
print(type(is_beginner))
print(int("18") + 1)

逐行代码讲解

  1. 第 1 行创建整数。
  2. 第 2 行创建浮点数。
  3. 第 3 行创建字符串,引号界定文字。
  4. 第 4 行创建布尔值,True 不需要引号。
  5. 第 5 行 type 返回 age 的类型,print 显示类型描述。
  6. 第 6 行查看浮点类型。
  7. 第 7 行查看字符串类型。
  8. 第 8 行查看布尔类型。
  9. 第 9 行先转为整数,再加 1,得到 19。

实际运行结果

以下输出已在 Python 3 中执行核对。代码和输出分别放在不同区域;不要把输出当作代码。

<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
19

常见错误

  • int(“3.5”) 不是把文字直接四舍五入;这不是合法整数文字,会产生 ValueError。
  • bool(“False”) 为 True,因为非空字符串会被视为真;它不是解析文字真假。
  • 把 True 写成 true 会被当成未定义名称。

实践练习

给定文字 “24”,转换后加 6;给定整数 30,转换成字符串并拼接“分钟”。预测 type(“24”) 与 type(24) 的区别。

先独立作答再查看参考。能运行还不够,请解释结果为什么正确。

参考答案

count = int("24")
print(count + 6)
minutes = 30
print(str(minutes) + "分钟")
assert count + 6 == 30
assert str(minutes) + "分钟" == "30分钟"

输出 30 与 30分钟。类型转换应表达明确意图,不要到处盲目增加 int 或 str 来掩盖问题。

换个角度理解

像给一件物品贴标签。标签可以移到另一件物品上;另一张写着旧价格的收据,不会因为标签变了就自动改金额。列表可以被多个名字指向,同一列表的修改会被它们共同看到。

STEP 01计算右侧表达式
STEP 02得到一个值 / 对象
STEP 03绑定左侧名称

把输入、中间结果和输出分别命名,可以读懂每一步,也便于检查。total = price * count 比重复写一个魔法数字更容易维护。

动手观察:一步一步执行

这是当前知识点的独立教学示例,不是本课所有 Python 语法的模拟。修改参数、预测结果,再按下一步验证。完整语言练习使用可信代码运行器。

EXECUTION / 可操作的程序状态

把每一步,看明白

本地受限解释器
参数改变所选示例的数值;执行从头开始。

变量与作用域

输出

每步显示该语句求值后的快照;第 0 步尚未执行。条件行显示判断结果,函数调用单独显示进入与返回。自动播放可随时暂停,默认不会启动。

CHECK YOUR UNDERSTANDING

自己判断,才知道哪里没懂

先选答案再核对。答错会提供原因和补学方向,不影响课程完成进度。

基础 x = 3;y = x;x = 5。y 是多少?

应用 a = 2;b = a * 4;a = 3。b 是多少?

迁移 要让 total 跟随新 count 更新,需要什么?

尚未提交练习。知识掌握度和学习进度分别记录。

把你卡住的代码或错误交给理解引擎 →

这一节,你理解到哪里了?

这是你的自我反馈,与练习估计、课程进度分别记录。

本文为TheZ原创教学内容。正文采用 CC BY-NC-SA 4.0,代码采用 MIT 许可。请尊重署名与授权范围。