跳转至

pl-external-grader-variables元件

显示提供给学生的变量,或期望学生在外部评分的 Python 问题中定义的变量。

我们建议不要针对任何不使用 prairielearn/grader-python Docker 映像的问题使用此元素,因为此元素存储参数的方式专门用于该自动评分器。如果您想使用不同的自动评分器显示问题的变量表,请考虑使用标准 HTML <table>

变量列表可以在 data["params"] 或问题 HTML 本身中定义(但不能同时定义两者!)。如果定义在 问题 HTML 本身,变量信息被添加到 data["params"] 供外部评分器使用。如果没有描述 存在,该列隐藏在向学生显示的表中。

如果存储在 data["params"] 中,变量列表的格式如下:

data["params"]["names_for_user"] = [
    {"name": "var1", "description": "Human-readable description.", "type": "type"},
    {"name": "var2", "description": "...", "type": "..."}
]
data["params"]["names_from_user"] = [
    {"name": "result1", "description": "...", "type": "..."}
]

样品元素

pl-external-grader-variables 元素的屏幕截图

question.html
<p>The setup code gives the following variables:</p>
<pl-external-grader-variables params-name="names_for_user"></pl-external-grader-variables>

<p>Your code snippet should define the following variables:</p>
<pl-external-grader-variables params-name="names_from_user">
  <pl-variable name="x" type="numpy array (length $n$)">
    Solution to $\mathbf{Ax}=\mathbf{b}$.
  </pl-variable>
</pl-external-grader-variables>
server.py
def generate(data):
    data["params"]["names_for_user"] = [
        {"name": "n", "description": r"Dimensionality of $\mathbf{A}$ and $\mathbf{b}$.", "type": "integer"},
        {"name": "A", "description": r"Matrix $\mathbf{A}$.", "type": "numpy array"},
        {"name": "b", "description": r"Vector $\mathbf{b}$.", "type": "numpy array"}
    ]

定制

属性 类型 默认 描述
empty 布尔 给定 params-name 的条目是否应设置为空。如果定义了变量并将其设置为 true,则会抛出错误。
params-name 字符串 data["params"] 中要显示的变量规范的名称,其格式如上所示。

内部 pl-variable 标签内的 HTML 用作描述。如果标记为空,则不会对给定变量使用任何描述。内部pl-variable标签具有以下属性:

属性 类型 默认 描述
name 字符串 给定变量的名称。所有变量都需要。
type 字符串 给定变量的类型。所有变量都需要。

示例实现

  • [演示/自动评分器/代码编辑器]
  • [演示/自动评分器/代码上传]
  • [演示/自动评分器/python/square]
  • [演示/自动评分器/python/numpy]
  • [演示/自动评分器/python/pandas]
  • [演示/自动评分器/python/绘图]
  • [演示/自动评分器/python/随机]