欢迎来到数据类型与结构的世界!
在本章中,我们将学习计算机如何存储和组织信息。将程序想象成一位正在准备食谱的大厨:指令就是代码 (code),而食材则是数据 (data)。要成为一名出色的程序员,你需要精确地了解你正在处理哪些“食材”,并学会如何妥善存储它们,以免造成混乱!
1. 变量与常量
在探讨具体的数据类型之前,我们必须知道该将它们放在哪里。在程序设计中,我们使用“容器”来存放信息。
变量 (Variables)
变量是计算机内存中的一个位置,用来存储数据。变量最重要的特点是,其数值在程序执行期间可以更改。
例子:在电子游戏中,你的“分数”就是一个变量。它从 0 开始,并随着你的游玩而增加。
常量 (Constants)
常量同样是内存中的一个位置,但一旦你存入数值,它就无法更改。在整个程序执行过程中,它将保持不变。
例子:圆周率 (\( \pi \)) 的数值,或游戏中的关卡总数。
快速重温:
变量 (Variable) = 可以改变(就像你的年龄)。
常量 (Constant) = 保持不变(就像你的出生日期)。
2. 基本数据类型 (Primitive Data Types)
每一项数据都有一个“类型”,告诉计算机如何处理它。以下是你需要掌握的四种“基本”类型:
1. 整数 (Integer): 没有小数点的整数。它们可以是正数或负数。
例子:10, -5, 0, 42
2. 实数 (Real 或 Float): 带有小数点的数字。
例子:3.14, -0.5, 10.0
3. 布尔值 (Boolean): 此类型只有两个值:True(真)或 False(假)。可以把它想象成电灯开关。
例子:IsGameOver = True
4. 字符 (Character 或 Char): 单一字母、数字或符号。
例子:'A', '!', '3'
记忆小撇步:记住 I.R.B.C.(I Read Big Comics),即 Integer(整数)、Real(实数)、Boolean(布尔值)、Character(字符)!
关键重点:选择正确的数据类型可以节省内存并防止错误。你不会试图对一个布尔值进行数学运算,也不会用整数来存储像 £1.99 这样的价格!
3. 结构化数据类型 (Structured Data Types)
有时候,单一数据项是不够的,我们需要方法将数据组合在一起。这些被称为结构化数据类型。
字符串 (Strings)
字符串是一组连接在一起的字符集合。我们通常将它们放在引号内。虽然它们看起来像单词,但计算机将其视为一串连续的字符“链”。
例子:"Hello World" 或 "Computer Science123"
数组 (Arrays - 一维)
数组是一个列表,其中的项目全都是相同的数据类型,并存储在同一个名称下。
比喻:将一维数组想象成一个鸡蛋盒。每个格子都有一个索引编号(从 0 开始!),而你可以在每个格子里面放一个项目。
数组 (Arrays - 二维)
二维数组就像一个包含行和列的表格。要找到某个数据,你需要两个坐标。
比喻:将二维数组想象成电影院座位表或棋盘。要找到一个座位,你需要行号和座位编号。
记录 (Records)
记录允许你存储一组相关的数据项,它们可以属于不同的数据类型。
例子:“学生 (Student)”记录可能包含:
- FirstName (字符串)
- Age (整数)
- AttendancePercent (实数)
常见错误:忘记数组通常是从 0 开始计算,而不是 1!这被称为从零开始索引 (zero-indexing)。
4. 字符串操作 (String Manipulation)
程序经常需要更改或“操作”字符串。以下是你会在 Paper 2 中用到的四种主要工具:
1. 长度 (Length): 找出字符串中有多少个字符(包括空格!)。
例子:"Cat" 的长度是 3。
2. 位置 (Position): 找出特定字符在哪里。记得从 0 开始数!
例子:在字符串 "Apple" 中,'p' 的位置是 1。
3. 子字符串 (Substring): 从较长的字符串中提取较小的一部分。
例子:从 "Strawberry" 提取子字符串以得到 "Berry"。
4. 大小写转换 (Case Conversion): 将文字全部改为大写 (UPPERCASE) 或全部改为小写 (lowercase)。
用途:检查用户输入的是 "YES"、"yes" 还是 "Yes"——你可以先将它们全部转换为小写,这样就很容易检查了!
你知道吗?计算机将 'A' 和 'a' 视为完全不同的东西,因为它们拥有不同的底层二进制代码!
章节总结
检查清单:你能否...
- 解释变量与常量的区别?
- 识别 Integer(整数)、Real(实数)、Boolean(布尔值) 和 Char(字符) 类型?
- 解释数组存放相同类型的项目,而记录可以存放不同类型?
- 计算一段文字的长度或找到其子字符串?
如果觉得要记的东西太多,别担心。练习编写更多使用这些类型的程序,你会慢慢感到得心应手!