CIN 初学者教程
这是一套从零开始的 CIN 编程教程。不需要任何编程经验, 只要会基本的电脑操作 (创建文件、打开终端、敲命令) 就能跟下来。如果你已经会 C / Go / Python, 也可以把它当 “CIN 快速上手指南”阅读。
三条学习路径
学完你能做什么
读完并完成练习后, 你能够:
- 写出、运行、调试多函数的 CIN 程序 (变量、分支、循环、函数、数组、字符串、struct);
- 使用 41 个内置标准库 (排序、统计、字符串处理、随机、JSON…);
- 用
import把自己的代码拆成多个文件; - 读懂编译器/运行时的错误面板并自己定位问题;
- 用
--json拿到机器可读的运行结果, 方便脚本与判题; - 用文件、网络、画布、系统交互等宿主能力写出真正有用的小工具;
- 把程序编译成不需要 Python 的独立可执行文件 (
--build-exe)。
学习路线
| 章 | 主题 | 你会写出 |
|---|---|---|
| 1 | 环境与第一个程序 | Hello World、看懂日志与报错 |
| 2 | 变量、类型与输入输出 | 温度换算、简单的问答程序 |
| 3 | 运算符与表达式 | 单位换算、整数除法陷阱演示 |
| 4 | 条件分支 | 成绩评级、闰年判断 |
| 5 | 循环 | 求和、乘法表、质数判断 |
| 6 | 函数与递归 | 阶乘、斐波那契、工具函数库 |
| 7 | 数组 | 平均值、最大值、冒泡排序 |
| 8 | 字符串 | 回文判断、单词统计、大小写转换 |
| 9 | struct | 学生成绩单、坐标与距离 |
| 10 | 模块与标准库 | 多文件项目、统计报告 |
| 11 | 文件 / 网络 / 画布 / 系统 | 记事本、生成 PNG 图表 |
| 12 | 调试与排错 | 独立排查并修好一个坏程序 |
| 13 | 综合实战 | 计算器、猜数字、成绩分析、矩阵乘法等 6 个项目 |
配套页面:
准备环境 (只做一次)
你需要:
- Python 3.8 或更高版本 — CIN 的命令行外壳由 Python 提供;
- Code CIN 本体 — 一条命令安装:
bash
pip install codecin
codecin --version # 打印当前版本想拿到最快的执行速度, 再装一个 Go 工具链 (安装时会自动编译原生加速库); 没有 Go 也能正常学习和运行, 只是速度慢一些。完整说明见 安装 Code CIN。
- 一个能写代码的编辑器 — VS Code、Notepad++、Vim 都行; 仓库
misc/vim/还提供 Vim 语法高亮。
本教程的约定
提示
小技巧、经验之谈, 或者“更地道的写法”。
说明
补充背景知识, 跳过也不影响继续阅读。
注意
容易踩的坑, 或者会改变程序行为的地方。
危险
会导致崩溃、数据错误或安全问题的写法。
- 形如
codecin prog.cin的代码块是要你在终端里敲的命令; - 形如
```c的代码块是CIN 源码, 建议手动敲一遍, 不要只复制; - 形如
```text的代码块是程序的真实输出(本教程所有输出都在 当前版本上实测过); - 术语首次出现时会用粗体标注。
与 C/Go 最容易踩的五个差异
先记住这五条, 能省下大量调试时间:
| 差异 | CIN 的行为 | 你该怎么做 |
|---|---|---|
| 除法 | / 永远是浮点除法, 7 / 2 得到 3.5 | 要整数商用 idiv(7, 2) (= 3) |
| 语句结尾 | 语句以换行结尾, 分号可选; 块内换行不能省 | 一行一条语句, 别把两条挤在一行 |
| 字符串比较 | == 比的是指针, 不是内容 | 用 strcmp(a, b) == 0 |
| 指针 | 没有取地址/解引用; 数组与 struct 传参天然是引用 | 需要“传出”多个值时, 传入一个结果数组 |
| 数组长度 | 数组不携带长度 | 所有数组函数都显式传 n (元素个数) |
下一步
打开 第 1 章: 环境与第一个程序, 十分钟内让程序跑起来。