python - 在python中检查考试
问题描述
我正在尝试解决这个问题:
第一个输入数组是考试正确答案的关键,例如
["a", "a", "b", "d"]
. 第二个包含学生提交的答案。这两个数组不为空且长度相同。返回此答案数组的分数,每个正确答案为 +4,每个错误答案为 -1,每个空白答案为 +0,表示为空字符串(在 C 中使用空格字符)。
我不断收到此代码的此错误消息:
UnboundLocalError: local variable 'i' referenced before assignment
这是我的代码:
def check_exam(arr1, arr2):
res = 0
for i in arr1[i]:
while arr2[i] != "":
if arr2[i] == arr1[i]:
res += 4
else:
res -= 1
return res
print(check_exam(["a", "a", "b", "b"], ["a", "c", "b", "d"]))
解决方案
该错误是由于for i in arr[i]
您i
在声明它之前使用的。
我以这种方式解决了这个问题:
def check_exam(arr1, arr2):
res = 0
#As len(arr1) = len(arr2) I choose one of them.
for i in range(len(arr1)):
if arr1[i] != arr2[i]:
if arr2[i] != "": res-=1
else: res+=0 #Blank answer.
elif arr1[i] == arr2[i]: res+=4
return res
print(check_exam(["a","a","b","b"],["a","c","b","d"]))
您可以使用 简单地比较具有相同索引的两个数组的元素for i in range(len(<one of the two arrays>))
。
推荐阅读
- c - 辛科去哪儿了?(海合会 c)
- python - transaction.atomic 是否有可能无法按预期工作?
- php - 自定义搜索文本字段位置数据表
- python - 如何更改在 QML 中具有多个音轨的视频的音轨
- optimization - Pytorch:如何针对多重损失优化多个变量?
- git - 如何将服务器端挂钩添加到 GitLab?
- node.js - '对 https://www.googleapis.com/oauth2/v4/token 的请求失败,原因:无法获取本地颁发者证书。节点JS
- c# - SetThreadDesktop 没有将表单切换到另一个桌面
- apache-kafka - Kafka Stream KTable 延迟
- django - Django 中的 PostgreSQL 文本搜索未按预期工作