You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询:使用Jupyter Notebooks制作Python课程作业的高效工作流

高效隐藏Jupyter Notebook解答的工作流方案

完全懂你的痛点——既要在同一个Notebook里留存自己的解答,又能快速生成只含题目的版本给学生,再也不用反复复制粘贴折腾。下面是我和身边授课同行常用的几个精简方案:

方法1:用Jupyter内置标签过滤解答

Jupyter Notebook/Lab支持给单元格打自定义标签,这是最原生且高效的方案:

  • 给所有解答单元格打上student-hidden这类专属标签(在单元格侧边栏的标签面板里添加)
  • 导出学生版时,用nbconvert命令一键过滤掉带标签的单元格:
    # 导出为干净的.ipynb文件给学生
    jupyter nbconvert --TagRemovePreprocessor.remove_input_tags='{"student-hidden"}' your_notebook.ipynb --to ipynb --output student_version
    # 或者导出为HTML格式
    jupyter nbconvert --TagRemovePreprocessor.remove_input_tags='{"student-hidden"}' your_notebook.ipynb --to html
    
    你本地保留完整带解答的版本,导出的学生版自动剔除解答,直接推GitHub即可。

方法2:用hide_code扩展可视化操作

如果偏好图形化界面,推荐安装Jupyter的hide_code扩展:

  • 安装后每个单元格右上角会出现隐藏按钮,一键就能把解答单元格设为隐藏状态
  • 导出时选择「Export Hidden Code」选项,直接生成不含解答的版本
  • 还支持给解答设置密码,之后想开放参考时也很灵活

方法3:轻量Markdown注释分隔法

不想装扩展的话,用简单的Markdown标记就能区分题目和解答:

  • 在解答单元格开头加<!-- SOLUTION START -->,结尾加<!-- SOLUTION END -->
  • 用sed命令批量移除标记间的内容生成学生版:
    sed '/<!-- SOLUTION START -->/,/<!-- SOLUTION END -->/d' your_notebook.ipynb > student_version.ipynb
    
    这个方法零依赖,适合快速处理单个或少量Notebook。

方法4:Jupyter Book(适合课程体系化)

如果你的课程有多个Notebook,想做成完整的课程网站,Jupyter Book是绝佳选择:

  • 在Notebook里用{toggle}指令把解答做成可折叠模块
  • 配置生成学生版时,设置折叠模块默认隐藏,甚至完全移除
  • 最终生成静态网站推GitHub Pages,学生浏览体验会更好

我自己平时常用标签+nbconvert的组合,命令行可以批量处理多个Notebook,效率拉满。选最贴合你使用习惯的方案就行~

内容的提问来源于stack exchange,提问作者ElenorDavey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:42:15