回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我最近开始学习Python,现在正忙着学习它的Codecademy教程。我刚刚完成了这个教程,你可以创建一个程序来确定字典中标记的平均值。当前代码如下:</p>
<pre><code>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]
}
class_list = [lloyd, alice, tyler]
def average(numbers):
total = sum(numbers)
total = float(total)
total = total / len(numbers)
return total
def get_average(student):
homework = average(student["homework"])
quizzes = average(student["quizzes"])
tests = average(student["tests"])
return homework * 0.1 + quizzes * 0.3 + tests * 0.6
def get_class_average(students):
results = []
for student in students:
results.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(get_average(student))
return average(results)
print get_class_average(class_list
</code></pre>
<p>但作为扩展,我想做的是让程序要求用户在第一行输入<code>lloyd</code>,并在字典中输入所有值,从而使它更加用户友好。此外,我想让程序在用户每次输入字典名称(例如第一行的<code>lloyd</code>)时生成一个新字典。然后用所有字典填写<code>class_list</code>。最后,我想让用户也可以输入行中标记的权重:</p>
<p><code>return homework * 0.1 + quizzes * 0.3 + tests * 0.6</code></p>
<p>我做这件事有困难,所以任何帮助都是非常感谢的。</p>