跳转至

4.1 数据类型基础——数字

内容梗概

本课是数据类型部分的第一讲,围绕 Python 中的数字类型展开。老师对比 C 语言讲解了 Python 整数的"无限精度"特性,介绍了二进制、八进制、十进制、十六进制整数的写法,并现场演示了内置函数 type() 查看变量类型。随后简要介绍了浮点数和复数的识别规则,最后提示数字支持的各种运算符可查阅官方文档自学。全课以 CMD 交互模式(>>> 提示符)为演示环境,鼓励学生开着视频同步操作。

知识点详解

Python 整数是无限精度的

  • (约 00:30) 与 C 语言最大的不同:Python 的整数是**无限精度**的,不需要声明类型,想写多长就写多长。
  • (约 00:38) C 语言中 32 位系统上一个 int 占 32 个比特,表示范围有限;超过范围要换用 long 等更宽的类型。Python 中没有这个限制。

整数的不同进制表示

  • (约 01:30) 演示用 0b 前缀写二进制数(超前知识):写了 32 个 1 的二进制数,说明 C 语言 int 的最大宽度。
  • (约 03:24) 默认情况下没有前缀的数字是十进制(字幕转写作"实数",实指十进制整数)。
  • (约 03:50) 以数字 97(小写字母 a 的 ASCII 码)为例,演示同一数值的多种进制写法:
  • 二进制:0b1100001,回车后显示为十进制 97
  • 八进制:0o141(注意前缀是数字 0 加小写字母 o,不是两个 0)
  • 十六进制:0x61
  • (约 06:50) 使用习惯:十进制和十六进制用得最多;八进制用得少;二进制写起来太长,也用得少。

type() 函数查看数据类型

  • (约 08:12) 内置函数 type(x):参数是想查看类型的变量名或值,返回该对象的类型(以"类"的形式显示,类的概念后面会讲)。
  • (约 08:54) 演示 type(hex_a) 返回 int 类型——说明各种进制写法的整数本质上都是 int。

浮点数与复数

  • (约 10:04) 浮点数:数值中带有小数点,Python 就认为是浮点数(如圆周率 3.14),type() 显示为 float。
  • (约 10:48) 复数:数值中带有 j(虚部记号)就认为是复数,type() 显示为 complex。
  • (约 11:29) 日常使用中小数经常用到,复数很少用;科学计算时复数用得多,后面数据分析部分再展开。

数字的运算符

  • (约 11:57) 数字支持各种运算符:加减乘除、取余、取商等,课上不逐一操作。
  • (约 12:22) 建议直接看官方文档自学更复杂的运算符,值得关注的还有绝对值、数据类型转换(本节课后面马上讲)、幂次方等。

示例与演示

  • 全程在 CMD 的 Python 交互模式(输入 python 回车进入,标志是三个大于号 >>>)中演示,课件在左、命令行在右。
  • 演示技巧:按**方向键上**可重复上一条命令(在 IDLE 中可能不支持,建议跟着用 CMD 操作)。
  • 互动答疑:有同学问十六进制 0D,老师指出那通常是字符串里的换行符(\x0D,值为 13),留到字符串/类型转换部分再讲。

重点与难点

  • 无限精度:Python 整数没有表示范围限制,这是与 C 语言 int 最本质的区别。
  • 进制前缀不要写错:0b(二进制)、0o(八进制,是字母 o)、0x(十六进制);无前缀即十进制。
  • 不同进制只是**写法**不同,type() 看都是同一个 int 类型。
  • Python 判断数字类型的逻辑很朴素:有小数点是浮点数,有 j 是复数,否则是整数。

关联内容

  • 前置知识:上一节课讲了如何安装 Python、进入命令行交互模式;C 语言基础(int 宽度、进制)作为对照。
  • 与 4.2 字符串衔接:答疑中提到的换行符 0D/ASCII 码问题在字符串和 4.4 类型转换(ord/chr)中正式讲解。
  • 为 4.4 类型转换埋下伏笔:进制转换、数据类型转换函数。
  • 复数留待后续数据分析章节展开;type() 返回的"类"概念在函数进阶与类章节详解。