0 python
我在codecademy.com上关注了一个教程,由于某些原因我无法理解,我的程序没有返回预期值,而是返回值"none".
我不明白为什么.你介意看看吗?
我使用的词典是:
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] }
Run Code Online (Sandbox Code Playgroud)
我尝试了以下功能:
def average(x):
return sum(x)/len(x)
def get_average(x):
a = (sum(x['homework'])/len(x['homework']) * 0.1 +
sum(x['quizzes'])/len(x['quizzes']) * 0.3 +
sum(x['tests'])/len(x['tests']) * 0.6)
return a
def get_letter_grade(score):
if score >= 90:
return "A"
elif score <= 80 and score < 90:
return "B"
elif score <= 70 and score < 80:
return "C"
elif score <= 60 and score < 70:
return "D"
elif score < 60:
return "F"
print get_letter_grade(get_average(lloyd))
Run Code Online (Sandbox Code Playgroud)
你的比较逻辑被打破了.这个:
elif score <= 80 and score < 90:
Run Code Online (Sandbox Code Playgroud)
说,"如果分数小于或等于80,而小于90" ......因此,如果得分为80.55,永远不会是真实的.你的意思是说"如果得分超过 80且低于90".
在Python中编写它的常用方法是这样的:
elif 80 <= score < 90:
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |