学习目标
- 识别 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 行创建整数。
- 第 2 行创建浮点数。
- 第 3 行创建字符串,引号界定文字。
- 第 4 行创建布尔值,True 不需要引号。
- 第 5 行 type 返回 age 的类型,print 显示类型描述。
- 第 6 行查看浮点类型。
- 第 7 行查看字符串类型。
- 第 8 行查看布尔类型。
- 第 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 来掩盖问题。
换个角度理解
像给一件物品贴标签。标签可以移到另一件物品上;另一张写着旧价格的收据,不会因为标签变了就自动改金额。列表可以被多个名字指向,同一列表的修改会被它们共同看到。
把输入、中间结果和输出分别命名,可以读懂每一步,也便于检查。total = price * count 比重复写一个魔法数字更容易维护。
动手观察:一步一步执行
这是当前知识点的独立教学示例,不是本课所有 Python 语法的模拟。修改参数、预测结果,再按下一步验证。完整语言练习使用可信代码运行器。
把每一步,看明白
变量与作用域
输出
每步显示该语句求值后的快照;第 0 步尚未执行。条件行显示判断结果,函数调用单独显示进入与返回。自动播放可随时暂停,默认不会启动。
自己判断,才知道哪里没懂
先选答案再核对。答错会提供原因和补学方向,不影响课程完成进度。
尚未提交练习。知识掌握度和学习进度分别记录。
这一节,你理解到哪里了?
这是你的自我反馈,与练习估计、课程进度分别记录。