- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在第 28 行有一个错误:
UnboundLocalError: local variable 'total referenced before assignment.
但是总计在第 24 行的第 28 行上方被引用。我不明白发生了什么。我正在尝试编写的代码是取每个学生的测试、测验和家庭作业分数的平均值。
感谢您的帮助。
lloyd = {
"name": "Lloyd",
"homework": [90.0, 97.0, 75.0, 92.0],
"quizzes": [88.0, 40.0, 94.0],
"tests": [75.0, 90.0]
}
alice = {
"name": "Alice",
"homework": [100.0, 92.0, 98.0, 100.0],
"quizzes": [82.0, 83.0, 91.0],
"tests": [89.0, 97.0]
}
tyler = {
"name": "Tyler",
"homework": [0.0, 87.0, 75.0, 22.0],
"quizzes": [0.0, 75.0, 78.0],
"tests": [100.0, 100.0]
}
def average(some):
return sum(some)/len(some)
students = [lloyd, alice, tyler]
total = 0
def get_class_average(students):
for student in students:
total += get_class_average(students)
return float(total) / len(students)
print get_class_average(students)
最佳答案
如果要在函数中分配给它,则需要将 total
标记为全局:
def get_class_average(students):
global total
for student in students:
total += get_class_average(students)
return float(total) / len(students)
通过分配给给定的变量,您将其标记为本地名称,除非您明确将其标记为全局名称。
您可能希望将total
移入函数而不是将其设为全局函数:
def get_class_average(students):
total = 0
for student in students:
total += get_class_average(students)
return float(total) / len(students)
您似乎没有在代码的其他地方使用它,因此在这里将其设置为全局变量有点过分了。
您的下一个问题是递归调用 get_class_average()
;该函数调用自身,传入完全相同的参数。该函数永远不会返回。我怀疑您打算改为调用 average()
函数,为每个学生传递一个特定列表,例如 homework
键或 quizzes
或 测试
:
def get_class_average(students, key):
total = 0
for student in students:
total += average(student[key])
return float(total) / len(students)
homework_average = get_class_average(students, 'homework']
关于python - Codecademy 类(class)平均水平,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19068656/
完成教程。我编写了一段代码来返回范围内的所有数字,并用字符串替换那些 %3 && 5% 或两者,但无论出于何种原因,codeacademy 返回一个错误(哎呀,再试一次。看起来你打印出了错误的数字项目
我一直在 Codecademy 网站上学习一些类(class),我发现他们的代码编辑器非常有用。 有谁知道他们的代码编辑器叫什么,以便我可以下载并使用它? 最佳答案 它是 Ace Editor .您可
我尝试合并网站(Codecademy)上给出的附加建议,即。存在平局的功能以及再次接受输入的规定。这是包含错误的代码段: var userChoice, computerChoice; var cho
我一直在 codeacademy 上慢慢学习 javascript,最近我上了一个类,在这个类中,你编写了你的名字在鼠标悬停时弹跳的脚本。我只是希望能够将此代码放在桌面背景或小型 .exe 之类的
我在 Codeacademy.com 上工作。控制台不会通过它。我联系了他们,但有人发现我的代码有什么问题吗? 第 4/7 节,问题 5。“故事升温”。 console.log("Batman gla
使用下面给出的代码,我尝试输出巧克力的值和类型,但巧克力的类型和牛奶未定义。有人可以帮我理解如何输出类型吗?我已经为此工作了一段时间,但它并不适合我。谢谢! // we set up a base c
days = int(raw_input("How many days do you want to rent da car for?")) def rental_car_cost(days):
CodeAcademy 的错误:糟糕,请重试。看起来您的方法在没有收到第二个参数时不会默认按字母顺序排列数组。 def alphabetize(arr, rev=false) if r
该任务已在 codecademy Practice Makes Perfect digit_sum 需要对正数的数字进行求和。我使用字符串方式来决定任务(不是楼层划分)。 我的代码是 def digi
我正在学习 Codecademy 的“JavaScript 简介”类(class)。我刚刚遇到了一段示例代码,它让我有点困惑,而且似乎没有得到解释。我查看了 Mozilla 文档并认为我理解,但我实际
我正在 Codecademy 上学习 javascript。然后突然我遇到了错误“哎呀,再试一次。请确保在控制台上打印一条消息!” var slaying = true var youHit =
在 Codeacademy 中,这是编写 React 组件的示例语法 var Input = React.createClass({ getInitialState: function () {
我已经在 Codecademy 开始使用 Python 进行编程。到目前为止,我认为我已经学习了一些基本的编程技能,并且我真的愿意尝试一些更困难的事情。 在我一直在工作的项目中,我不断收到此错误我的代
var sleepCheck = function(numHours); { if (numHours >= 8) { return("You're getting plent
我目前正在 codecademy.com 上学习 JS,令我印象深刻的一件事是: "Hi, I am" + " " + name 这是一个函数的简单返回,当你把它放进去时打印你的名字 printNam
我正在研究 codeAcademy 的 javascript 部分,但我对其中一个练习非常感兴趣。这是我的代码: var friends = { bill:{ firstNam
我正在使用codecademy学习js,它告诉我我已经通过了类(class),但是它对我来说看起来并不成功,我想了解我哪里出错了以帮助我学习,因为它没有提供任何帮助,因为它说我已经成功完成了类(cla
我正在做 Codecademy 练习 portfolio我无法理解 Assets 管道位:练习的步骤 14,其中说明如下: Save your JavaScript code to app/asset
因此,“for var x in Friends”循环将搜索 Friends 中的每个键,即 bill 和 steve,然后使用“friends[x].firstName === name”我们检查第
我正在通过 Codecademy 工作。我需要创建一个函数,它接受电影名称并根据输入的电影给出电影评论。我需要使用 switch 语句来执行此操作。 它要求用户创建一个名为 getReview 的函数
我是一名优秀的程序员,十分优秀!