基石(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