查看全课大纲(第 2 / 51 节)
  1. 1.为什么人人都该学点编程?
  2. 2.计算机与程序设计:你的电脑到底在“想”什么?
  3. 3.Python 这门语言,到底有什么魔力?
  4. 4.Python 开发环境配置:如何拥有你的第一个“编程工具箱”?
  5. 5.如何安装一个更强大的代码编辑器?
  6. 6.汇率兑换1.0:你的第一个“钱生钱”小程序
  7. 7.你的第一行代码,藏着哪些秘密?
  8. 8.汇率兑换2.0(上):让程序看懂“CNY”和“USD”
  9. 9.汇率兑换程序,如何让它“聪明”地判断币种?
  10. 10.汇率兑换程序能一直运行,直到我喊停吗?
  11. 11.汇率兑换4.0:如何把“算钱”功能打包成积木?
  12. 12.汇率兑换5.0:给你的程序穿上“结构化”的西装
  13. 13.怎么用 Python 画一个会动的五角星?
  14. 14.如何让程序自动画出不同大小的五角星?
  15. 15.函数自己调用自己,会发生什么?
  16. 16.用递归画出神奇的分形树
  17. 17.Python 怎么计算你一天躺着不动能消耗多少热量?
  18. 18.如何让程序“活”起来,持续为你服务?
  19. 19.如何让 BMR 计算器更“聪明”?
  20. 20.当程序遇到“不按套路出牌”的用户怎么办?
  21. 21.怎么用 Python 模拟一个“滚雪球”式的存钱计划?
  22. 22.如何用列表记录每一周的存款?
  23. 23.如何让程序自己数数?—— 用 for 循环解放你的双手
  24. 24.52周存钱挑战4.0:你的存款计算器能有多灵活?
  25. 25.52周存钱挑战:怎么根据日期自动查存款?
  26. 26.Python 怎么判断一年中的第几天?
  27. 27.列表 vs 元组:哪个更适合存储月份天数?
  28. 28.用集合给月份分个队,换个思路算天数
  29. 29.把月份和天数“锁”在一起:用字典给数据配个对
  30. 30.Python 怎么判断密码强弱?
  31. 31.Python 怎么给密码设置“防沉迷”系统?
  32. 32.Python 怎么把密码保存到文件里?
  33. 33.Python 怎么读取文件里的密码?
  34. 34.Python 怎么把密码检查工具“打包”起来?
  35. 35.Python 怎么把文件操作也“打包”起来?
  36. 36.计算机怎么“扔骰子”?——用Python模拟随机事件
  37. 37.如何用 Python 模拟掷两个骰子?
  38. 38.怎么用 Python 把骰子轨迹画出来?
  39. 39.骰子点数分布长啥样?用直方图一眼看穿!
  40. 40.用科学计算库让骰子程序“起飞”
  41. 41.空气质量指数怎么算?手把手教你写一个AQI计算器
  42. 42.空气质量指数计算:从零开始,让程序看懂空气
  43. 43.如何读取空气质量数据文件并找出空气质量最好的五个监测点?
  44. 44.JSON 数据怎么变成 Excel 表格?—— 让数据换个“马甲”
  45. 45.Python 怎么让程序自己判断文件类型?
  46. 46.如何让程序自己上网查空气质量?
  47. 47.用美味的汤来解析网页:Beautiful Soup 入门
  48. 48.如何让爬虫自动抓取全国所有城市的空气质量?
  49. 49.爬到的数据怎么存下来?—— 把全国空气质量数据保存为CSV文件
  50. 50.用 pandas 玩转空气质量数据:找出全国空气最好和最差的城市
  51. 51.空气质量数据怎么“洗”干净,还能画成图?

计算机与程序设计:你的电脑到底在“想”什么?

约 15 分钟

小象实战讲义 · Python 入门:8 个小项目边玩边学

欢迎来到编程世界的第一站!在动手写代码之前,我们先来聊聊一个最基础的问题:计算机到底是怎么工作的?程序又是什么?别担心,这完全不是枯燥的理论课。想象一下,你马上要指挥一个超级听话(但有点笨)的“小助手”帮你做事,你得先了解它的“大脑”是怎么运转的。学完这一节,你就能像导演一样,清晰地知道你的指令(代码)是如何一步步变成屏幕上神奇的结果的。

💡 核心导读

  • 计算机是什么? 不只是你的电脑或手机,它是一个能根据指令处理数据的“工具人”。
  • 计算机的“身体”:认识 CPU、内存、硬盘这些核心部件,就像了解汽车的发动机和油箱。
  • 程序的“三步走”哲学:所有程序都遵循“输入 → 处理 → 输出”(IPO)这个简单到像“把大象关冰箱”的流程。
  • 写程序的“循环打怪”步骤:从发现问题到最终发布,程序员其实在不断“确定问题 → 设计方法 → 写代码 → 测试 → 验证”的循环中前进。

你的“超级工具人”:计算机

计算机听起来很高大上,但其实它无处不在。你正在看这篇讲义的设备——无论是笔记本电脑、台式机,还是智能手机、平板——它们都是计算机。

那么,计算机到底是什么呢?

一个标准的(但有点枯燥的)定义是:计算机是根据一系列指令对数据进行处理的工具或机器。

拆解一下这个定义,你会发现计算机有两个核心特征:

  1. 可以进行数据计算:它的老本行,算得又快又准。
  2. 根据指令执行任务:你让它干嘛,它就干嘛,非常听话。

等等,既然它这么听话,为什么现在的人工智能(比如下围棋的 AlphaGo)看起来会“自己学习”呢?其实,这背后所有的学习规则和算法,最初也是由人类程序员编写好的指令。计算机本身依然是在执行这些复杂的指令,它自己并不会“灵机一动”。从这个角度看,它其实挺“笨”的。

拆开看看:计算机的“五脏六腑”

为了更好地指挥我们的“工具人”,我们得了解一下它的内部构造。以你手边的笔记本电脑或台式机为例:

  • 大脑(CPU - 中央处理器):这是计算机的“运算器+控制器”,负责所有的计算和指挥工作。你手机里的芯片也是它的同类。
  • 记忆系统(存储器):这里要分两种,它们的作用大不相同!
    • 硬盘:像你的书房或仓库,用于长期存储数据。你保存的文档、安装的软件、下载的电影都住在这里。即使关机断电,它们也不会消失。
    • 内存:像你书桌上的临时工作区,用于临时存储正在运行的程序和数据。当你同时打开很多软件(比如浏览器、音乐播放器、文档编辑器),电脑会变卡,就是因为内存这个“桌面”被塞满了。关键一点:内存里的数据是临时的,一旦关机或断电,就会全部清空!这就是为什么编辑文档时要时刻记得保存——保存操作就是把数据从“内存桌面”搬回“硬盘仓库”。
  • 感官与表达(输入/输出设备):
    • 输入设备:计算机的“耳朵”和“眼睛”,用于接收外界信息。比如:键盘、鼠标、麦克风、摄像头。
    • 输出设备:计算机的“嘴巴”和“展示板”,用于呈现结果。比如:显示器、音响、打印机。

动动脑:你能类比一下你的智能手机吗?它的 CPU、内存、硬盘、输入设备和输出设备分别是什么?

核心哲学:所有程序都逃不过的 IPO

理解了计算机的组成,我们来看看程序在它内部是如何流动的。这个过程有一个非常经典且简单的模型,叫做 IPO(注意,不是公司上市那个 IPO)。

  1. I - Input(输入):程序需要“原料”。比如,你想让程序算一下 100 美元等于多少人民币,那么“100”和“美元”就是输入。
  2. P - Process(处理):程序拿到原料后,按照你预先写好的“食谱”(也就是代码)进行加工。比如,查找汇率,执行乘法计算。
  3. O - Output(输出):程序把加工好的“菜品”端出来。比如,在屏幕上显示“约合 700 元人民币”。

是不是简单得像“把大象关进冰箱分三步”?没错,编程的核心思想就是这么朴素。任何复杂的软件,追根溯源,都是这三大步的不断组合与嵌套。

我们可以把 IPO 和计算机硬件结合起来,看看一个完整的程序执行过程:

[硬盘]  --存储--> [代码/程序]
                     |
                     V (程序启动,加载到内存)
[输入设备] --> [内存] <--> [CPU] (进行数据处理)
                     |         |
                     V         V
[输出设备] <-- [输出结果]   [临时计算结果]
         或
[硬盘] <-- [保存的结果]
  1. 你写的程序代码平时安静地躺在硬盘里。
  2. 当你运行它时,它会被加载到内存中。
  3. 你通过输入设备(如键盘)给程序提供数据(Input)。
  4. CPU 从内存中读取指令和数据,开始疯狂计算(Process),中间结果也放在内存里。
  5. 最终,结果通过输出设备(如显示器)展示给你看,或者被存回硬盘(Output)。

像侦探一样写程序:编写步骤

知道了程序怎么跑,那我们应该怎么写出一个程序呢?它不是一个“灵感爆发,一气呵成”的过程,而更像一个“侦探破案”或“医生诊断”的循环。

  1. 确定问题:首先,你得明确要解决什么问题。“我想知道每周存钱,一年能存多少”是一个问题。“这个程序界面不好看”是另一个问题。大问题可以拆成小问题。
  2. 算法设计:想清楚解决问题的步骤和方法。这一步不需要写代码,可以在脑子里想,或者在纸上画流程图。比如,算存款的算法是:“每周金额”乘以“52周”。
  3. 算法实现(编程):把你想好的步骤,用 Python 这种计算机能懂的语言写出来。这就是我们常说的“写代码”。
  4. 测试:运行你写好的程序,看看它是不是真的能工作,结果对不对。就像游戏上线前的“内测”。
  5. 验证:把测试得到的结果,和你最初预想的结果进行比较。如果一致,太棒了!如果不一致,那就说明有问题(有 Bug)。

重点来了:第5步之后,如果没有问题,就可以发布。但如果有问题,你就需要回到第1步,把“Bug”当作新的“问题”,重新开始“设计解决方法(修复Bug)→ 实现 → 测试 → 验证”的循环。

这个过程会不断重复,直到你觉得程序足够可靠为止。世界上几乎没有没有任何 Bug 的软件,像 Windows 或 iOS 这样的系统,也一直在通过更新来修复问题。所以,写程序就是一个不断“发现问题-解决问题”的循环,非常锻炼逻辑思维!

📝 动手练一练

  1. 生活里的 IPO:请你想一个日常生活中完全由你手动完成的小任务(比如:泡一杯咖啡),并用 IPO(输入、处理、输出)三个步骤来分析它。你的“输入设备”和“输出设备”是什么?

  2. 内存 vs 硬盘:假设你的电脑突然断电了。下面哪些东西会丢失,哪些不会?请判断并想想为什么。

    • A. 你刚写了一半还没保存的 Word 文档内容。
    • B. 保存在 D 盘的电影文件。
    • C. 正在播放的网页视频的当前画面。
    • D. 微信聊天记录里去年的一张图片。
👉 点击查看参考答案
  1. 泡咖啡示例:

    • 输入 (I):咖啡粉、热水、你的“开始泡咖啡”指令。
    • 处理 (P):你的大脑指挥手,完成放入咖啡粉、注入热水、等待等步骤。
    • 输出 (O):一杯泡好的咖啡。
    • 输入设备:你的眼睛(看咖啡粉和水)、手(触摸)。
    • 输出设备:你的手(端出咖啡)。
  2. 断电影响判断:

    • A. 会丢失:未保存的文档内容只存在于内存中,断电后内存数据清空。
    • B. 不会丢失:电影文件存储在硬盘中,断电不影响硬盘的长期存储。
    • C. 会丢失:正在播放的视频画面数据是临时加载在内存中进行解码和显示的,断电后消失。
    • D. 不会丢失:去年的聊天图片通常已同步或保存在手机/电脑的硬盘(或类似存储)中,断电不影响。

本章小结

恭喜你!你已经揭开了计算机和程序设计的神秘面纱。记住这几个核心心法,它们是你整个编程之旅的基石:

  • 计算机是一个听话的数据处理工具。
  • 程序运行遵循 IPO(输入-处理-输出) 的简单逻辑。
  • 写程序是一个 “确定问题 → 设计 → 实现 → 测试 → 验证” 的循环过程。

📋 行动清单

学完立刻可以做的两件事,巩固你的理解:

  • 观察你的手机:尝试指出它的 CPU、内存、硬盘、输入设备和输出设备分别对应哪些部件。
  • 用 IPO 分析一个 App:打开你常用的任何一个 App(比如计算器、天气软件),思考一下它的输入、处理和输出分别是什么。

—— 小象教研组

看图文没弄懂?展开看本节视频讲解(约 15 分钟)
📺 正在播放小象学院官方高清录播(支持倍速与清晰度调节)