查看全课大纲(第 2 / 51 节)
- 1.为什么人人都该学点编程?
- 2.计算机与程序设计:你的电脑到底在“想”什么?
- 3.Python 这门语言,到底有什么魔力?
- 4.Python 开发环境配置:如何拥有你的第一个“编程工具箱”?
- 5.如何安装一个更强大的代码编辑器?
- 6.汇率兑换1.0:你的第一个“钱生钱”小程序
- 7.你的第一行代码,藏着哪些秘密?
- 8.汇率兑换2.0(上):让程序看懂“CNY”和“USD”
- 9.汇率兑换程序,如何让它“聪明”地判断币种?
- 10.汇率兑换程序能一直运行,直到我喊停吗?
- 11.汇率兑换4.0:如何把“算钱”功能打包成积木?
- 12.汇率兑换5.0:给你的程序穿上“结构化”的西装
- 13.怎么用 Python 画一个会动的五角星?
- 14.如何让程序自动画出不同大小的五角星?
- 15.函数自己调用自己,会发生什么?
- 16.用递归画出神奇的分形树
- 17.Python 怎么计算你一天躺着不动能消耗多少热量?
- 18.如何让程序“活”起来,持续为你服务?
- 19.如何让 BMR 计算器更“聪明”?
- 20.当程序遇到“不按套路出牌”的用户怎么办?
- 21.怎么用 Python 模拟一个“滚雪球”式的存钱计划?
- 22.如何用列表记录每一周的存款?
- 23.如何让程序自己数数?—— 用 for 循环解放你的双手
- 24.52周存钱挑战4.0:你的存款计算器能有多灵活?
- 25.52周存钱挑战:怎么根据日期自动查存款?
- 26.Python 怎么判断一年中的第几天?
- 27.列表 vs 元组:哪个更适合存储月份天数?
- 28.用集合给月份分个队,换个思路算天数
- 29.把月份和天数“锁”在一起:用字典给数据配个对
- 30.Python 怎么判断密码强弱?
- 31.Python 怎么给密码设置“防沉迷”系统?
- 32.Python 怎么把密码保存到文件里?
- 33.Python 怎么读取文件里的密码?
- 34.Python 怎么把密码检查工具“打包”起来?
- 35.Python 怎么把文件操作也“打包”起来?
- 36.计算机怎么“扔骰子”?——用Python模拟随机事件
- 37.如何用 Python 模拟掷两个骰子?
- 38.怎么用 Python 把骰子轨迹画出来?
- 39.骰子点数分布长啥样?用直方图一眼看穿!
- 40.用科学计算库让骰子程序“起飞”
- 41.空气质量指数怎么算?手把手教你写一个AQI计算器
- 42.空气质量指数计算:从零开始,让程序看懂空气
- 43.如何读取空气质量数据文件并找出空气质量最好的五个监测点?
- 44.JSON 数据怎么变成 Excel 表格?—— 让数据换个“马甲”
- 45.Python 怎么让程序自己判断文件类型?
- 46.如何让程序自己上网查空气质量?
- 47.用美味的汤来解析网页:Beautiful Soup 入门
- 48.如何让爬虫自动抓取全国所有城市的空气质量?
- 49.爬到的数据怎么存下来?—— 把全国空气质量数据保存为CSV文件
- 50.用 pandas 玩转空气质量数据:找出全国空气最好和最差的城市
- 51.空气质量数据怎么“洗”干净,还能画成图?
计算机与程序设计:你的电脑到底在“想”什么?
约 15 分钟
小象实战讲义 · Python 入门:8 个小项目边玩边学
欢迎来到编程世界的第一站!在动手写代码之前,我们先来聊聊一个最基础的问题:计算机到底是怎么工作的?程序又是什么?别担心,这完全不是枯燥的理论课。想象一下,你马上要指挥一个超级听话(但有点笨)的“小助手”帮你做事,你得先了解它的“大脑”是怎么运转的。学完这一节,你就能像导演一样,清晰地知道你的指令(代码)是如何一步步变成屏幕上神奇的结果的。
💡 核心导读
- 计算机是什么? 不只是你的电脑或手机,它是一个能根据指令处理数据的“工具人”。
- 计算机的“身体”:认识 CPU、内存、硬盘这些核心部件,就像了解汽车的发动机和油箱。
- 程序的“三步走”哲学:所有程序都遵循“输入 → 处理 → 输出”(IPO)这个简单到像“把大象关冰箱”的流程。
- 写程序的“循环打怪”步骤:从发现问题到最终发布,程序员其实在不断“确定问题 → 设计方法 → 写代码 → 测试 → 验证”的循环中前进。
你的“超级工具人”:计算机
计算机听起来很高大上,但其实它无处不在。你正在看这篇讲义的设备——无论是笔记本电脑、台式机,还是智能手机、平板——它们都是计算机。
那么,计算机到底是什么呢?
一个标准的(但有点枯燥的)定义是:计算机是根据一系列指令对数据进行处理的工具或机器。
拆解一下这个定义,你会发现计算机有两个核心特征:
- 可以进行数据计算:它的老本行,算得又快又准。
- 根据指令执行任务:你让它干嘛,它就干嘛,非常听话。
等等,既然它这么听话,为什么现在的人工智能(比如下围棋的 AlphaGo)看起来会“自己学习”呢?其实,这背后所有的学习规则和算法,最初也是由人类程序员编写好的指令。计算机本身依然是在执行这些复杂的指令,它自己并不会“灵机一动”。从这个角度看,它其实挺“笨”的。
拆开看看:计算机的“五脏六腑”
为了更好地指挥我们的“工具人”,我们得了解一下它的内部构造。以你手边的笔记本电脑或台式机为例:
- 大脑(CPU - 中央处理器):这是计算机的“运算器+控制器”,负责所有的计算和指挥工作。你手机里的芯片也是它的同类。
- 记忆系统(存储器):这里要分两种,它们的作用大不相同!
- 硬盘:像你的书房或仓库,用于长期存储数据。你保存的文档、安装的软件、下载的电影都住在这里。即使关机断电,它们也不会消失。
- 内存:像你书桌上的临时工作区,用于临时存储正在运行的程序和数据。当你同时打开很多软件(比如浏览器、音乐播放器、文档编辑器),电脑会变卡,就是因为内存这个“桌面”被塞满了。关键一点:内存里的数据是临时的,一旦关机或断电,就会全部清空!这就是为什么编辑文档时要时刻记得保存——保存操作就是把数据从“内存桌面”搬回“硬盘仓库”。
- 感官与表达(输入/输出设备):
- 输入设备:计算机的“耳朵”和“眼睛”,用于接收外界信息。比如:键盘、鼠标、麦克风、摄像头。
- 输出设备:计算机的“嘴巴”和“展示板”,用于呈现结果。比如:显示器、音响、打印机。
动动脑:你能类比一下你的智能手机吗?它的 CPU、内存、硬盘、输入设备和输出设备分别是什么?
核心哲学:所有程序都逃不过的 IPO
理解了计算机的组成,我们来看看程序在它内部是如何流动的。这个过程有一个非常经典且简单的模型,叫做 IPO(注意,不是公司上市那个 IPO)。
- I - Input(输入):程序需要“原料”。比如,你想让程序算一下 100 美元等于多少人民币,那么“100”和“美元”就是输入。
- P - Process(处理):程序拿到原料后,按照你预先写好的“食谱”(也就是代码)进行加工。比如,查找汇率,执行乘法计算。
- O - Output(输出):程序把加工好的“菜品”端出来。比如,在屏幕上显示“约合 700 元人民币”。
是不是简单得像“把大象关进冰箱分三步”?没错,编程的核心思想就是这么朴素。任何复杂的软件,追根溯源,都是这三大步的不断组合与嵌套。
我们可以把 IPO 和计算机硬件结合起来,看看一个完整的程序执行过程:
[硬盘] --存储--> [代码/程序]
|
V (程序启动,加载到内存)
[输入设备] --> [内存] <--> [CPU] (进行数据处理)
| |
V V
[输出设备] <-- [输出结果] [临时计算结果]
或
[硬盘] <-- [保存的结果]- 你写的程序代码平时安静地躺在硬盘里。
- 当你运行它时,它会被加载到内存中。
- 你通过输入设备(如键盘)给程序提供数据(Input)。
- CPU 从内存中读取指令和数据,开始疯狂计算(Process),中间结果也放在内存里。
- 最终,结果通过输出设备(如显示器)展示给你看,或者被存回硬盘(Output)。
像侦探一样写程序:编写步骤
知道了程序怎么跑,那我们应该怎么写出一个程序呢?它不是一个“灵感爆发,一气呵成”的过程,而更像一个“侦探破案”或“医生诊断”的循环。
- 确定问题:首先,你得明确要解决什么问题。“我想知道每周存钱,一年能存多少”是一个问题。“这个程序界面不好看”是另一个问题。大问题可以拆成小问题。
- 算法设计:想清楚解决问题的步骤和方法。这一步不需要写代码,可以在脑子里想,或者在纸上画流程图。比如,算存款的算法是:“每周金额”乘以“52周”。
- 算法实现(编程):把你想好的步骤,用 Python 这种计算机能懂的语言写出来。这就是我们常说的“写代码”。
- 测试:运行你写好的程序,看看它是不是真的能工作,结果对不对。就像游戏上线前的“内测”。
- 验证:把测试得到的结果,和你最初预想的结果进行比较。如果一致,太棒了!如果不一致,那就说明有问题(有 Bug)。
重点来了:第5步之后,如果没有问题,就可以发布。但如果有问题,你就需要回到第1步,把“Bug”当作新的“问题”,重新开始“设计解决方法(修复Bug)→ 实现 → 测试 → 验证”的循环。
这个过程会不断重复,直到你觉得程序足够可靠为止。世界上几乎没有没有任何 Bug 的软件,像 Windows 或 iOS 这样的系统,也一直在通过更新来修复问题。所以,写程序就是一个不断“发现问题-解决问题”的循环,非常锻炼逻辑思维!
📝 动手练一练
生活里的 IPO:请你想一个日常生活中完全由你手动完成的小任务(比如:泡一杯咖啡),并用 IPO(输入、处理、输出)三个步骤来分析它。你的“输入设备”和“输出设备”是什么?
内存 vs 硬盘:假设你的电脑突然断电了。下面哪些东西会丢失,哪些不会?请判断并想想为什么。
- A. 你刚写了一半还没保存的 Word 文档内容。
- B. 保存在 D 盘的电影文件。
- C. 正在播放的网页视频的当前画面。
- D. 微信聊天记录里去年的一张图片。
👉 点击查看参考答案
泡咖啡示例:
- 输入 (I):咖啡粉、热水、你的“开始泡咖啡”指令。
- 处理 (P):你的大脑指挥手,完成放入咖啡粉、注入热水、等待等步骤。
- 输出 (O):一杯泡好的咖啡。
- 输入设备:你的眼睛(看咖啡粉和水)、手(触摸)。
- 输出设备:你的手(端出咖啡)。
断电影响判断:
- A. 会丢失:未保存的文档内容只存在于内存中,断电后内存数据清空。
- B. 不会丢失:电影文件存储在硬盘中,断电不影响硬盘的长期存储。
- C. 会丢失:正在播放的视频画面数据是临时加载在内存中进行解码和显示的,断电后消失。
- D. 不会丢失:去年的聊天图片通常已同步或保存在手机/电脑的硬盘(或类似存储)中,断电不影响。
本章小结
恭喜你!你已经揭开了计算机和程序设计的神秘面纱。记住这几个核心心法,它们是你整个编程之旅的基石:
- 计算机是一个听话的数据处理工具。
- 程序运行遵循 IPO(输入-处理-输出) 的简单逻辑。
- 写程序是一个 “确定问题 → 设计 → 实现 → 测试 → 验证” 的循环过程。
📋 行动清单
学完立刻可以做的两件事,巩固你的理解:
- 观察你的手机:尝试指出它的 CPU、内存、硬盘、输入设备和输出设备分别对应哪些部件。
- 用 IPO 分析一个 App:打开你常用的任何一个 App(比如计算器、天气软件),思考一下它的输入、处理和输出分别是什么。
—— 小象教研组