这一页不用形容词,直接给你看代码。下面的每一段都能直接跑 (生成这个页面时会当场跑一遍,跑不过就不许发布)。
`令` 声明变量,不需要写类型令 名字 = "小明"
令 年龄 = 18
令 身高 = 1.75
打印(名字, 年龄, 身高)
`如果 / 否则如果 / 否则` 与 `遍历 … 在 …`令 分数 = 87
如果 分数 >= 90:
打印("优秀")
否则如果 分数 >= 60:
打印("及格")
否则:
打印("不及格")
遍历 数 在 范围(1, 4):
打印(数)
默认参数、返回,写法与 Python 一致函数 打招呼(名字, 语气 = "你好"):
返回 语气 + "," + 名字
打印(打招呼("小明"))
打印(打招呼("小红", "早上好"))
`列表.追加`、`字典.键()` —— 方法与内建都是中文令 名单 = ["小明", "小红"]
名单.追加("小刚")
打印(长度(名单))
令 成绩 = {"小明": 95, "小红": 88}
遍历 名字 在 成绩.键():
打印(名字, 成绩[名字])
推导式写成 `[表达式 遍历 … 在 …]`;插值用 `${}`令 平方 = [n * n 遍历 n 在 范围(1, 6)]
打印(平方)
令 名字 = "小明"
打印("你好,${名字}!")
`类 / 继承 / 新建`,`自身` 就是 self类 动物:
函数 初始化(自身, 名字):
自身.名字 = 名字
函数 叫(自身):
返回 "……"
类 狗 继承 动物:
函数 叫(自身):
返回 "汪汪"
打印(新建 狗("旺财").叫())
`尝试 / 捕获 / 最终`;异常类型也是中文尝试:
令 结果 = 10 / 0
捕获 除零错误 为 e:
打印("出错了:", e.消息)
`用 … 为` 就是上下文管理器:块一结束自动关文件用 打开("数据.txt", "写") 为 f:
f.写行("第一行")
用 打开("数据.txt") 为 f:
遍历 行 在 f:
打印(行)
标准库模块要先 `导入`;函数名同样是中文导入 数学
打印(数学.开方(16))
打印(数学.最大公约数(12, 18))
打印(数学.四舍五入(3.14159, 2))
这是全部关键字 —— 一门语言的关键字越少,越容易在脑子里装下。
| 关键字 | 作用 |
|---|---|
| 令 | 声明/赋值变量 |
| 如果 | 条件判断 |
| 否则 | 否则分支 |
| 否则如果 | 否则如果分支 |
| 遍历 | for 循环 |
| 循环 | 循环 N 次 |
| 当 | while 循环 |
| 中断 | 跳出循环 |
| 继续 | 跳过本次循环 |
| 函数 | 定义函数 |
| 返回 | 返回值 |
| 导入 | 导入模块 |
| 在 | 遍历 x 在 列表 |
| 从 | 从 python 导入 |
| 为 | 导入别名 |
| 真 | 布尔真 |
| 假 | 布尔假 |
| 空 | 空值 None |
| 与 | 逻辑与 |
| 或 | 逻辑或 |
| 非 | 逻辑非 |
| 是 | IS |
| 不是 | IS_NOT |
| 不在 | NOT_IN |
| 次 | 循环次数助词 |
| 类 | 定义类 |
| 继承 | 类继承 |
| 新建 | 实例化 |
| 尝试 | 异常处理 |
| 捕获 | 捕获异常 |
| 最终 | finally |
| 抛出 | 抛出异常 |
| 用 | WITH |
| 匹配 | MATCH |
| 情形 | CASE |
| 枚举 | ENUM |
基石借用了 Python 的语法骨架(缩进、冒号开块、没有花括号), 把词换成了中文。所以会 Python 的人基本可以直接读:
| 基石 | Python |
|---|---|
| 令 | = |
| 如果 | if |
| 否则 | else |
| 否则如果 | elif |
| 遍历 | for |
| 循环 | for _ in range(N) |
| 当 | while |
| 中断 | break |
| 继续 | continue |
| 次 | (助词:`循环 N 次` → range(N)) |
| 函数 | def |
| 返回 | return |
| 导入 | import |
| 从 | from |
| 在 | in(`遍历 x 在 列表` → for x in 列表) |
| 为 | as |
| 真 | True |
| 假 | False |
| 空 | None |
| 与 | and |
| 或 | or |
| 非 | not |
| 类 | class |
| 继承 | class 名(基类) |
反过来也成立:jishi --ai-card 会打出一张中文语言卡,
可以直接贴进大模型让它照着写。
| 写法 | 含义 | 类别 |
|---|---|---|
| 或 | 逻辑或 | 二元 · 优先级 1 |
| 与 | 逻辑与 | 二元 · 优先级 2 |
| == | 等于 | 二元 · 优先级 3 |
| != | 不等于 | 二元 · 优先级 3 |
| < | 小于 | 二元 · 优先级 3 |
| > | 大于 | 二元 · 优先级 3 |
| <= | 小于等于 | 二元 · 优先级 3 |
| >= | 大于等于 | 二元 · 优先级 3 |
| 在 | 在 | 二元 · 优先级 3 |
| 不在 | 不在 | 二元 · 优先级 3 |
| 是 | 是 | 二元 · 优先级 3 |
| 不是 | 不是 | 二元 · 优先级 3 |
| + | 加 | 二元 · 优先级 4 |
| - | 减 | 二元 · 优先级 4 |
| * | 乘 | 二元 · 优先级 5 |
| / | 除 | 二元 · 优先级 5 |
| // | 整除 | 二元 · 优先级 5 |
| % | 取余 | 二元 · 优先级 5 |
| ** | 乘方 | 二元 · 优先级 6 |
| - | 取负 / 逻辑非 | 一元 |
| 非 | 取负 / 逻辑非 | 一元 |
| %= | 复合赋值 | 赋值 |
| **= | 复合赋值 | 赋值 |
| *= | 复合赋值 | 赋值 |
| += | 复合赋值 | 赋值 |
| -= | 复合赋值 | 赋值 |
| //= | 复合赋值 | 赋值 |
| /= | 复合赋值 | 赋值 |
| = | 复合赋值 | 赋值 |
有些中文编程工具是把中文先翻成 Python 再跑 —— 那样报错位置、调用栈、
性能都会走样。基石是**自己实现的语言**:有自己的词法、语法、字节码与虚拟机,
报错里给的是基石的行列位置,jishi 错误 E0301 查的也是基石的错误码。
而且实现不只一份:Rust(前端 + 字节码 VM + 完整宿主)与 C 虚拟机 是两份正式实现,另有 Python / Node 两套只作判据基准 —— 同一段程序跑出来的 字节码与输出必须逐字节一致,这条有测试盯着,不一致就是 bug。
语法面已经冻结(不会再随手加新语法),但下面这些还在长:
标准库还在加模块;部分错误文案会再打磨;匹配/情形
这类较新的语法用得还少,实际项目里踩到问题会修。
想看更细的规则?语言规格 是逐条写死的形式化说明。