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": "..."}
]
样品元素¶

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/随机]