欢迎来到编程的世界!
你好!你即将踏入计算机科学的核心领域。编程本质上就是向电脑提供一系列指令来解决问题。这就像为厨师写食谱,厨师会严格遵循你写的每一个字来执行。在本章中,我们将探讨几乎所有编程语言(包括 Python、VB.Net、Java 和 C#)中使用的基础构建块。
如果这看起来像在学习一门外语,请不用担心——它确实是!我们会循序渐进,并配合简单的例子,确保你学得充满信心。
1. 数据类型:信息的标签
电脑不像人类那么聪明;它们需要准确知道正在处理什么类型的数据,才能正确地储存它们。你可以将数据类型(Data Types)想象成储物盒上的标签。
常见的内置数据类型:
- 整数 (Integer): 纯整数(没有小数点!)。例如:10, -5, 0。
- 实数 / 浮点数 (Real / Float): 带有小数点的数字。例如:3.14, -0.5。
- 布尔值 (Boolean): 只有两个值:True(真) 或 False(假)。就像电灯开关一样。
- 字符 (Character): 单个字母、数字或符号。例如:'A', '$', '3'。
- 字符串 (String): 一串字符的集合(词语或句子)。例如:"Hello World"。
- 日期/时间 (Date/Time): 专门用于日历日期和时间。
复杂数据类型:
- 数组 (Arrays): 一组数据类型相同的项目列表。想象一个鸡蛋盒,每个格子都必须放一个鸡蛋。
- 记录 (Records): 一组相关但数据类型可以不同的数据集合。想象一张学生证,上面包含字符串(姓名)、整数(年龄)和日期(出生日期)。
用户自定义数据类型: 有时,内置的类型并不够用。你可以根据上述类型建立自己的类型,使代码更易于理解。
快速回顾:数据类型
常见错误: 认为 "10" 是整数。如果数字被引号包围,电脑会将其视为字符串(文本),而不是可以用来运算的数字!
2. 编程概念:基础构建块
每个程序都是由几个核心原则构建的。AQA 课程重点关注顺序 (Sequence)、选择 (Selection) 和迭代 (Iteration)。
变量 vs. 常量
变量 (Variable) 是一个命名的内存位置,其值可以在程序运行时改变(就像游戏中的分数)。
常量 (Constant) 是一个在程序开始后无法改变的值(例如 \( \pi \) 的值或地球的重力)。使用命名的常量可以让你的代码更易读,并防止意外修改!
三大原则:
- 顺序 (Sequence): 电脑按照指令从上到下依次执行。
- 选择 (Selection): “决策者”。它使用 IF 语句来选择要走的路线。例如:IF score > 10 THEN "You Win"。
- 迭代 (Iteration): 也称为“循环”。这是电脑重复执行某项任务的过程。
迭代(循环)类型:
- 确定迭代 (Definite Iteration): 你确切知道循环会执行多少次(例如,运行 10 次的 FOR 循环)。
- 不确定迭代 (Indefinite Iteration): 你不知道它会运行多少次;它会一直运行直到满足某个条件为止(例如,WHILE 循环)。
注意: 不确定循环可以在开始时检查条件(可能永远不会运行),也可以在结束时检查(至少会运行一次)。
关键要点:
有意义的标识符: 始终清晰地命名你的变量!使用 player_health 而不是 ph。这能让你的代码具备“自述性”,方便他人(以及未来的你自己)理解。
3. 算术与逻辑:电脑的“大脑”
电脑基本上是超高速的计算机。你需要知道它们如何处理数学运算和逻辑。
算术运算:
- 加法 (+)、减法 (-)、乘法 (*)。
- 实数/浮点数除法 (Real/Float Division, /): 标准除法。\( 7 / 2 = 3.5 \)。
- 整数除法 (DIV): 只取整数部分。\( 7 \text{ DIV } 2 = 3 \)。
- 求余数 (MOD): 只取除法后剩下的余数。\( 7 \text{ MOD } 2 = 1 \)。
- 幂运算 (Exponentiation): 指数运算(例如 \( 2^3 = 8 \))。
- 四舍五入 (Rounding): 将浮点数变成最接近的整数。
- 截断 (Truncation): 直接“切掉”小数部分,不进行四舍五入。
布尔逻辑运算:
这些运算有助于电脑进行逻辑比较:
- AND: 两侧必须同时为 True。
- OR: 至少有一侧为 True。
- NOT: 反转值(True 变为 False)。
- XOR: 只有一侧为 True(不能两侧皆为 True)。
记忆技巧:DIV 与 MOD
想象 7 块饼干分给 2 个人。
DIV 是每个人分到的“完整”饼干数量 (3)。
MOD 是罐子里“剩下”的饼干数量 (1)。
4. 字符串处理:操作文本
字符串在编程中非常常见。你需要掌握这些操作:
- 长度 (Length): 字符串中有多少个字符?"Cat" 的长度是 3。
- 位置 (Position): 寻找字符的位置。在 "Apple" 中,'A' 位于位置 0。
- 子字符串 (Substring): 截取字符串的一小部分。"Hello" 的子字符串可以是 "ell"。
- 连接 (Concatenation): 将两个字符串“黏”在一起。"Foot" + "ball" = "Football"。
- 转换 (Conversion): 将字符串 "123" 转换为整数 123,以便进行数学运算。
5. 子程序:聪明地工作,而非辛苦地工作
子程序 (Subroutine) 是主程序中命名过的“小程序”。与其重复写同样的代码 10 次,不如写一次子程序,然后在需要时随时“调用 (call)”它。
过程 vs. 函数
- 过程 (Procedures): 执行一项任务(例如打印信息),但不会传回任何值。
- 函数 (Functions): 执行计算并将结果返回 (return) 给主程序。
参数与作用域
- 参数 (Parameters): 这是你“传入”子程序的数据,让它有足够的数据来运作。
- 局部变量 (Local Variables): 这些变量仅存在于子程序内部。它们在子程序开始时“出生”,结束时“消亡”。这是良好的编程习惯,因为它可以防止程序的不同部分意外干扰彼此的数据。
- 全局变量 (Global Variables): 程序的任何部分都可以查看和修改它们。请谨慎使用!
你知道吗?
使用子程序能让你的代码更容易测试和除错 (debug),因为你可以分别检查每个小部分,而不是面对一大堆杂乱的代码。
6. 错误处理:异常
有时事情会出错(例如尝试除以零,或者尝试打开不存在的文件)。这被称为异常 (Exception)。
异常处理 (Exception Handling): 这是一段用来在程序崩溃前“捕获”错误的程序代码。就像马戏团里的安全网——即使演员失手,演出也不会以灾难告终!
总结检查清单
在你继续前进之前,请确保你能回答以下问题:
- 我能解释整数 (Integer) 与实数 (Real) 的区别吗?
- 我知道何时该使用 MOD 和 DIV 吗?
- 我能解释为什么局部变量比全局变量更好吗?
- 我明白选择 (Selection) 是为了做决定,而迭代 (Iteration) 是为了重复执行吗?
如果起初觉得有点复杂,别担心!学习编程最好的方法就是动手写代码。试着创建一个使用 IF 语句和循环的小程序——你很快就会豁然开朗!