欢迎来到第 6.4 章:输入与输出!
在本章中,我们将探索程序是如何与“外部世界”进行沟通的。将程序想象成厨房里的厨师:为了做出一道菜,厨师需要食材(输入),而当餐点完成后,需要送给顾客(输出)。如果没有输入和输出,计算机程序就只能在那里发呆,什么也做不了!
我们将学习如何从用户那里获取信息、如何将这些信息永久储存在文件中,以及如何确保我们获取的信息不是“垃圾数据”。让我们开始吧!
1. 用户输入与“适当的回应”
大多数程序都需要与人类互动。用户输入 (User input) 指的是程序暂停并等待用户输入某些内容的过程。
运作原理:
当程序要求输入时,通常会将答案储存在一个变量 (variable) 中,以便稍后使用。为了做到“适当的回应”,程序应该利用这些输入来决定下一步该做什么。
例子: 如果游戏问你的名字,而你输入了“Alex”,程序应该说“你好 Alex”,而不是仅仅说“你好用户”。
小撇步:数据类型
别忘了!当用户输入内容时,计算机通常会将其视为字符串 (String)(文字)。如果你想用它进行计算(例如加法运算),你必须先告诉计算机将其转换为整数 (Integer) 或实数 (Real number)。
总结: 输入是用户向程序提供数据的方式;程序随后必须使用这些数据来提供相关的结果。
2. 验证:检查食材
你有听过“垃圾进,垃圾出”(Garbage In, Garbage Out) 这句话吗?它的意思是,如果你给计算机错误的数据,它就会给你错误的结果。验证 (Validation) 是计算机执行的一项自动检查,用以确保在程序处理数据之前,数据是合理的。
根据课程大纲,你需要掌握四种主要的验证类型:
- 存在检查 (Presence Check): 这能确保用户没有留下空白栏位。它会检查数据是否确实存在!(例如:网页表单上的必填栏位)。
- 长度检查 (Length Check): 这会检查输入的字符数是否正确。(例如:英国邮政编码必须介于 6 到 8 个字符之间)。
- 范围检查 (Range Check): 这会检查数字是否落在指定的最小值和最大值之间。(例如:年龄必须在 0 到 120 之间)。
- 格式检查 (Pattern Check): 这会检查输入是否符合特定的格式或样式。(例如:日期必须是 DD/MM/YYYY 的格式)。
记忆小秘诀:L-P-R-P 清单
为了记住这些类型,试着记住这句话:Lovely Penguins Read Papers(可爱的企鹅读报纸)。
Length(长度)、Presence(存在)、Range(范围)、Pattern(格式)。
要避免的常见错误: 验证无法检查数据是否 100% 正确!如果你把名字拼成“Smithe”而不是“Smith”,计算机并不知道你打错字了。它只知道这些数据是合理的(例如:它不是空白且不是数字)。
总结: 验证的目的是确保数据在被使用前是合理的。
3. 文件处理:逗号分隔值 (CSV)
当你关掉计算机时,储存在变量或内存 (RAM) 中的任何数据都会消失。为了永久保存数据,我们将其储存在硬盘或 SSD 上的文件 (File) 中。
什么是 CSV 文件?
CSV (Comma Separated Values) 文件是一种简单的纯文本文件,其中每笔数据都以逗号分隔。它就像一个非常简单的电子表格。
CSV 文件内容示例:
Alex, 15, Blue
Sam, 14, Red
Jordan, 16, Green
文件的读写:
要在程序中使用文件,通常要遵循三个步骤:
- 打开 (Open): 告诉计算机你想使用哪个文件,以及你要读取 (Read) 还是写入 (Write)。
- 处理 (Process): 将文件中的行读取到程序中,或是将新数据写入文件。
- 关闭 (Close): 完成后必须关闭文件,以便“保存”更改并释放内存。
你知道吗? CSV 文件之所以受欢迎,是因为它们是“通用”的。你可以用记事本、Microsoft Excel 打开它们,甚至可以编写 Python 程序来读取它们!
总结: 文件允许数据的永久存储,而 CSV 文件使用逗号将数据组织成行和列。
4. 验证身份:你是谁?
验证身份 (Authentication) 是证明用户身份的过程。这对于安全性至关重要。
在程序设计中如何运作:
程序通常会通过要求两项信息来实现身份验证:ID(如用户名)和密码 (Password)。随后程序会执行查询 (Lookup)。
查询过程:
1. 用户输入 ID 和密码。
2. 程序在储存的列表(如文件或数据库)中寻找该 ID。
3. 如果找到该 ID,它会检查输入的密码是否与该 ID 对应的密码相符。
4. 如果两者相符,用户即通过“身份验证”并获准进入!
快速复习箱:
- 数据验证 (Validation): 数据是否合理?(例如:密码长度是否足够?)
- 身份验证 (Authentication): 用户是否被授权?(例如:密码是否正确?)
总结: 身份验证利用 ID 和密码查询来确保程序的安全性和隐私。
重点总结
输入/输出是用户与计算机之间的桥梁。要成为优秀的程序员,你需要做到:
1. 使用输入让你的程序具备互动性。
2. 使用验证来防止“垃圾”数据破坏你的代码。
3. 使用CSV 文件来储存你的数据,以供日后使用。
4. 使用身份验证确保只有合适的人才能访问你的数据。
如果刚开始觉得文件处理有点复杂,请别担心——只要在代码中多练习几次开文件和关文件,这些操作很快就会变得像呼吸一样自然!