在exams2webquiz中,将数字作为字符串的解法

前端开发 2026-07-09

使用 R/exams 包,我写了一个动态百分比题,有时 exsolution10,有时则是 35%。因此,在前者的情形,正确解只是一个数字,可以写成 extype: num。但在后者的情形,正确解需要 % 符号,而这只有通过 extype: string 才可能。

因此,我为这个练习采用了 extype: string,在通过 exams2canvas() 函数导出练习到Canvas时工作正常。

然而,当我想通过来自 exams2forms 包的 exams2webquiz() 生成一个独立的交互式网页测验时,网页测验只有 35% 的答案被正确评估,而 10 未被接受为正确。我也尝试切换 auto 参数的 exams2webquiz(),即使它把 10 放进条目框,也会被标记为错误。

我理解我可以根据答案来设定 extype: numextype: string,但似乎这也许可以被视为一个错误?下面给出一个最小可复现的示例练习。

Question
========
Type the character string `10`.

Solution
========
Just type `1` and then `0`.

Meta-information
================
exname: numeric string
extype: string
exsolution: 10

解决方案

简要结论(TL;DR) 这是一个缺陷,已在 exams2forms 版本0.2-1中修复,现在已在CRAN上。

细节: 同一类在HTML (webex-solveme) 中用于 “填空” 字段,无论输入的是数值解还是字符串解,应该输入,但在其他属性(尤其是容差)方面有所不同。用于接收输入答案并将其与正确解进行比较的JavaScript代码,在区分带容差的数值和字符串情况方面不够仔细。

警告: 当使用 exams2forms() 函数更新到新版本的包(而不是便捷接口 exams2webquiz())时,请确保将新的 webex.js 文件复制到你的项目中。参见:system.file("webex", "webex.js", package = "exams2forms")

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章