基石(jishi)few-shot 示例库

48 个「任务描述 → 基石代码」精炼对,覆盖高频场景。 用于 few-shot 提示:把前几个示例贴进 LLM 上下文,再给出新任务。


示例 1:计算平均值

任务:写函数计算列表平均值。

jsh函数 平均值(数据):
    返回 总和(数据) / 长度(数据)

示例 2:过滤正数

任务:从一个列表里筛出所有正数。

jsh令 正数 = [x 遍历 x 在 数据 如果 x > 0]

示例 3:统计频次

任务:统计列表里每个元素出现的次数。

jsh令 频次 = {}
遍历 x 在 数据:
    如果 频次.包含(x):
        频次[x] += 1
    否则:
        频次[x] = 1

示例 4:字符串插值

任务:用名字和年龄拼一句问候。

jsh打印(`你好 {名字},今年 {年龄} 岁`)

示例 5:斐波那契

任务:输出前 10 个斐波那契数。

jsh令 a = 0
令 b = 1
循环 10 次:
    打印(a)
    a, b = b, a + b

示例 6:列表排序

任务:把一个列表从小到大排序。

jsh令 结果 = [5, 2, 8, 1]
结果.排序()
打印(结果)

示例 7:判断素数

任务:写函数判断一个数是不是素数。

jsh函数 是素数(n):
    如果 n < 2:
        返回 假
    遍历 i 在 范围(2, n):
        如果 n % i == 0:
            返回 假
    返回 真

示例 8:类与对象

任务:定义一个银行账户类,支持存款取款。

jsh类 账户:
    函数 初始化(自身, 余额):
        自身.余额 = 余额
    函数 存(自身, 数额):
        自身.余额 += 数额
    函数 取(自身, 数额):
        如果 数额 > 自身.余额:
            抛出 值错误("余额不足")
        自身.余额 -= 数额

令 我的 = 新建 账户(100)
我的.存(50)

示例 9:异常处理

任务:除法时兜底处理除零。

jsh尝试:
    令 结果 = a / b
捕获 除零错误 为 e:
    打印("除数不能是零")

示例 10:文件读写

任务:把文本写入文件再读出来。

jsh导入 文件
文件.写文本("输出.txt", "你好,基石")
令 内容 = 文件.读文本("输出.txt")

示例 11:随机数

任务:生成 1 到 100 之间的随机整数。

jsh导入 随机
令 n = 随机.随机整数(1, 100)

示例 12:数学计算

任务:计算一个数的平方根和平方。

jsh导入 数学
打印(数学.开方(16))
打印(数学.平方(5))

示例 13:字典推导

任务:生成「数字 → 平方」的映射。

jsh令 平方表 = {x: x * x 遍历 x 在 [1, 2, 3, 4, 5]}

示例 14:多赋值解包

任务:交换两个变量的值。

jsha, b = b, a

示例 15:默认参数

任务:写带默认参数的问候函数。

jsh函数 打招呼(名字, 语气 = "你好"):
    打印(语气, 名字)
打招呼("小明")

示例 16:文本处理

任务:把句子按空格拆成词,再去掉首尾空白。

jsh令 句子 = "  你好 世界  "
令 词 = 句子.去空白().拆分(" ")

示例 17:求和统计

任务:求 1 到 100 所有偶数的和。

jsh令 总和 = 总和([x 遍历 x 在 范围(1, 101) 如果 x % 2 == 0])

示例 18:Python 桥接

任务:用 Python 的 math 算平方根。

jsh导入 math 从 python
打印(math.sqrt(2))

示例 19:多值返回

任务:写函数同时返回商和余数。

jsh函数 除法(a, b):
    返回 a // b, a % b
令 商, 余 = 除法(17, 5)

示例 20:数据清洗综合

任务:去掉列表里的负数,再把剩余翻倍。

jsh函数 清洗(数据):
    令 有效 = [x 遍历 x 在 数据 如果 x >= 0]
    返回 [x * 2 遍历 x 在 有效]

示例 21:列表推导带条件

任务:筛出 1 到 20 里所有能被 3 整除的数。

jsh令 结果 = [x 遍历 x 在 范围(1, 21) 如果 x % 3 == 0]

示例 22:嵌套字典取值

任务:从嵌套字典里安全地取值,缺键给默认值。

jsh函数 取(字典, 键, 默认 = 空):
    如果 字典.包含(键):
        返回 字典[键]
    返回 默认

示例 23:字符串方法链

任务:把一句带前后空格的话清洗成规范标题。

jsh令 标题 = "  你好,基石世界  ".去空白().替换(",", ",").大写()

示例 24:JSON 读写

任务:把字典存成 JSON 文件再读回来。

jsh导入 json
令 数据 = {"姓名": "小明", "年龄": 8}
json.写文件("数据.json", 数据)
令 读回 = json.读文件("数据.json")

示例 25:日期计算

任务:计算两个日期相差几天。

jsh导入 日期
打印(日期.相差天数("2026-09-10", "2026-09-01"))

示例 26:正则匹配

任务:判断字符串是否全是数字。

jsh导入 正则
令 输入 = "13800138000"
如果 正则.匹配("^\d+$", 输入):
    打印("是纯数字")

示例 27:字典遍历

任务:遍历字典的键和值。

jsh遍历 键 在 字典:
    打印(键, 字典[键])

示例 28:列表去重

任务:去掉列表里的重复元素,保持顺序。

jsh令 结果 = []
遍历 项 在 数据:
    如果 非 结果.包含(项):
        结果.追加(项)

示例 29:闭包

任务:写一个能记住累加状态的计数器。

内层函数里给外层变量赋值算「新建局部变量」(M40 起与字节码执行器一致, 也和 Python 一样),所以计数器要把状态放在可变容器里:

jsh函数 造计数器():
    令 状态 = [0]
    函数 加一():
        状态[0] = 状态[0] + 1
        返回 状态[0]
    返回 加一
令 计 = 造计数器()
打印(计(), 计(), 计())            # 1 2 3

示例 30:类继承

任务:定义动物类,狗继承并覆盖叫声。

jsh类 动物:
    函数 初始化(自身, 名字):
        自身.名字 = 名字
    函数 叫(自身):
        返回 "..."

类 狗 继承 动物:
    函数 叫(自身):
        返回 "汪汪"

令 旺财 = 新建 狗("旺财")
打印(旺财.叫())

示例 31:最终块(finally)

任务:无论成功失败都执行清理。

jsh尝试:
    令 结果 = 10 / 0
捕获 除零错误:
    打印("除零了")
最终:
    打印("清理完成")

示例 32:自定义异常

任务:抛出一个带消息的自定义错误。

jsh函数 校验(年龄):
    如果 年龄 < 0:
        抛出 值错误("年龄不能是负数")

示例 33:Python 桥接数学

任务:用 Python 的 datetime 获取当前时间。

jsh导入 datetime 从 python
令 现在 = datetime.datetime.now()
打印(现在.year)

示例 34:多值解包循环

任务:遍历「键值对」列表并解包(M41 起 遍历 支持多变量)。

jsh令 对们 = [["小明", 8], ["小红", 9]]
遍历 名字, 年龄 在 对们:
    打印(名字, 年龄)

示例 35:字典推导式

任务:把列表转成「元素 → 出现次数」的字典。

jsh令 频次 = {x: 数据.计数(x) 遍历 x 在 数据}

示例 36:文本插值

任务:用变量拼一句完整的话。

jsh令 名 = "基石"
令 版本 = "1.0"
打印(`欢迎使用 {名} {版本} 版`)

示例 37:排序字典按值

任务:按字典的值从大到小排出 [[键, 值], …]。

jsh导入 容器
令 频次 = {"甲": 3, "乙": 1, "丙": 5}
令 排序后 = 容器.按值排序(频次)
打印(排序后)                     # [['丙', 5], ['甲', 3], ['乙', 1]]

示例 38:沙箱执行(协议)

任务:以沙箱方式跑一段代码,取回统一结果。

jsh# 用 jishi 命令:jishi 脚本.jsh --sandbox --json-result
# 输出 {"ok":true,"stdout":"...","duration_ms":...}

示例 39:字节码编译

任务:把源码编译成跨语言字节码。

jsh# 用 jishi 命令:jishi 脚本.jsh --dump-bytecode > 脚本.json
# 再用 node node/index.js 脚本.json 或 Rust 宿主执行

示例 40:文件按行读

任务:读文件所有行,过滤空行。

jsh导入 文件
令 行们 = [行 遍历 行 在 文件.按行读("a.txt") 如果 行.去空白() != ""]

示例 41:CSV 表格操作

任务:读 CSV,按某列排序。

jsh导入 表格
令 t = 表格.读表格("成绩.csv")
令 排序后 = 表格.排序按(t, "分数", 倒序 = 真)

示例 42:网络请求 JSON

任务:请求一个返回 JSON 的接口。

jsh导入 网络
令 数据 = 网络.获取JSON("https://api.example.com/data")

示例 43:路径操作

任务:判断文件是否存在并取文件名。

jsh导入 路径
如果 路径.存在("a.txt"):
    打印(路径.文件名("a.txt"))

示例 44:加密摘要

任务:计算一段文本的 sha256。

jsh导入 加密
打印(加密.sha256("你好"))

示例 45:压缩打包

任务:把一个目录打包成 zip。

jsh导入 压缩
压缩.打包("备份.zip", "数据目录")

示例 46:列表切片

任务:取列表的一部分 / 倒序 / 隔一个取一个。

jsh令 a = [1, 2, 3, 4, 5]
打印(a[1:3])      # [2, 3]
打印(a[::-1])     # [5, 4, 3, 2, 1]
打印(a[::2])      # [1, 3, 5]

示例 47:命令行参数

任务:读命令行传进来的参数。

jsh导入 系统
遍历 参 在 系统.参数():
    打印("收到参数:", 参)

示例 48:最小最大多参数

任务:比较两个或几个数的大小。

jsh打印(最小(5, 3))       # 3
打印(最大(5, 3, 9))    # 9