欢迎来到程序设计结构的世界!
你好!欢迎踏入 H2 Computing 学习旅程中最令人兴奋的部分之一。你可以把程序设计结构(Programming Constructs)想象成数字世界的“乐高积木”。就像你使用不同的积木来搭建城堡一样,你将会运用这些结构来构建软件、应用程序和游戏。不用担心,刚开始接触可能会觉得像在学习一种新语言——但在这些笔记结束后,你将能流畅地使用“计算机语言”对话!
1. 基本数据类型 (LO 1.2.1)
在我们告诉计算机该做什么之前,我们需要先了解它能处理的信息类型。在 Python(你们课程中使用的语言)中,我们主要关注四种类型:
1. 整数 (int): 即整数。可以是正数、负数或零。
例如:10, -5, 0
2. 浮点数 (float): 即带有小数点的数字。
例如:3.14, -0.01, 2.0
3. 字符串 (str): 这只是文本的专业说法。字符串必须用引号包起来。
例如:"Hello World", 'Computing is fun!', "123"(注意:"123" 是文本,不是数字!)
4. 布尔值 (bool): 这代表逻辑。它们只有两个值:True(真) 或 False(假)。
例如:太阳热吗?True。5 大于 10 吗?False。
你知道吗? 计算机其实只“看懂”1 和 0。这些数据类型实际上是抽象化(abstractions)的概念,帮助我们人类在与机器沟通时,不用为了底层的二进制而发疯!
常见错误: 当你使用 input() 函数时,Python 永远会把你输入的内容视为字符串。如果你想把它当成数字使用,必须进行类型转换,就像这样:\( \text{age} = \text{int(input("Enter age: "))} \)。
快速回顾:
• int:整数。
• float:小数。
• str:引号内的文本。
• bool:True/False 逻辑值。
2. 使用程序库函数 (LO 1.2.2)
你不需要重新发明轮子!Python 提供了“程序库(Libraries)”——即处理常见任务的预编写代码。你只需要知道如何调用它们即可。
输入与输出
print():将信息显示在屏幕上。
input():从用户那里获取信息。
数学运算
若要使用进阶数学功能,通常会用到 math 模块。以下是你需要掌握的几个函数:
• math.sqrt(x):计算平方根。
• math.ceil(x):将数字无条件进位至最接近的整数。
• math.floor(x):将数字无条件舍去至最接近的整数。
字符串操作
字符串就像一条字符组成的“链条”。你可以轻松地操作它们:
• 串接 (Concatenation, +): 将两个字符串连在一起。"Ice" + "Cream" 会变成 "IceCream"。
• 切片 (Slicing): 截取字符串的一部分。\( \text{str[0:3]} \) 可以取得前三个字符。
• len(): 计算字符串中有多少个字符。
记忆小撇步: 把程序设计中的程序库 (library) 想象成真实世界的图书馆。你不必自己写书;你只需要走进去,“借用”你需要的知识(函数)即可!
重点总结: 程序库函数可以节省时间,并使你的代码更可靠,因为这些功能都已经过专家的测试。
3. 抽象化:函数与过程 (LO 1.2.3)
随着程序变大,代码会变得混乱。抽象化 (Abstraction) 的过程就是隐藏复杂细节,并将代码归类为“区块”,称为函数 (Functions) 和 过程 (Procedures)。
比喻: 当你按下微波炉的“启动”键时,你不需要知道电力是如何产生辐射来加热食物。你只需要使用“启动”这个函数。复杂性对你来说是被隐藏起来的。
两者的区别
1. 函数 (Function): 一段执行特定任务并将结果回传 (return) 给你的代码区块。
例如:一个计算税务并回传最终价格的函数。
2. 过程 (Procedure): 一段执行特定任务但不会回传特定值的代码区块。在 Python 中,我们使用 def 关键字来定义两者。
例如:一个单纯在屏幕上显示“欢迎”信息的过程。
为什么要使用它们?
• 可重用性 (Reusability): 写一次,就能使用多次。
• 清晰度 (Clarity): 让你的代码更容易阅读。
• 模块化 (Modularization): 将大问题拆解成小巧、易于管理的“模块”。
重点总结: 函数就像机器:你给它“输入”(参数),它进行运作,最后“输出”(回传)一个结果。
4. 局部变量与全局变量 (LO 1.2.4)
并非所有变量在任何地方都能使用。这个概念称为作用域 (Scope)。
局部变量 (Local Variables): 它们生活在函数内部。当函数开始时被建立,函数结束时便消失。
比喻:你在卧室里的私人日记。只有在那个房间里(函数内)的人才能读到。
全局变量 (Global Variables): 它们存在于所有函数外部。程序的任何部分都能看到并使用它们。
比喻:学校食堂里的布告栏。每个人都看得到。
重要提示: 专业程序员会尽量避免使用过多的全局变量。为什么?因为如果程序的任何部分都能修改变量,当出现错误(Bug)时,就很难追踪到底是哪里出了问题!
快速回顾:
• 局部 (Local):安全、暂时、函数私有。
• 全局 (Global):永久、所有人皆可存取,但容易造成混乱的 Bug。
5. Python 列表与字典 (LO 1.2.5)
有时候,你需要存储的是一组数据,而不仅仅是一个。这个时候就是列表 (Lists) 和 字典 (Dictionaries) 派上用场的时候。
Python 列表 (Lists)
列表是有序的项目集合。想象成购物清单或排队队列。
• 查询: \( \text{my\_list[0]} \) 可取得第一个项目(记得,我们从 0 开始数!)。
• 新增: 使用 .append() 将项目新增到末尾。
• 更新: \( \text{my\_list[1] = "New Value"} \)。
• 删除: 使用 del my\_list[index] 或 .remove(value)。
Python 字典 (Dictionaries)
字典以键值对 (Key-Value pairs) 的形式存储数据。就像真正的字典:你查询一个“词”(键,Key)来找到它的“定义”(值,Value)。
• 查询: \( \text{my\_dict["name"]} \) 可取得该键对应的值。
• 新增/更新: \( \text{my\_dict["age"] = 18} \)。如果键不存在则新增,若已存在则更新。
• 删除: 使用 del my\_dict["key"]。
总结表格:
• 列表 (List):使用索引编号 (0, 1, 2...)。适合用于顺序性项目。
• 字典 (Dictionary):使用自定义键 (字符串/数字)。适合用于结构化数据,如用户档案。
结语
如果不记得这些细节也别担心。程序设计是一种技能,而不仅仅是一堆知识点。练习将这些结构输入计算机的次数越多,你就会感觉越自然。你已经掌握了程序如何构建的核心基础——做得好!
最后重点: 程序设计的核心在于为任务选择合适的工具(数据类型、函数或数据结构)。继续保持练习!