def sum_server_use_time(Server):
total_use_time = 0.0
for key,value in Server.items():
total_use_time += Server[key]
return round(total_use_time, 2)
if total_use_time !=898:
print(total_use_time)
FileServer = {"EndUser1": 2.25, "EndUser2": 4.5, "EndUser3": 1, "EndUser4": 3.75, "EndUser5": 0.6, "EndUser6": 8}
(sum_server_use_time(FileServer)) # Should print 20.1
我没有得到答案,我在这里做错了什么,有人可以解释一下吗?我对这个问题感到沮丧,你能列出我需要完美理解这些问题的主题吗
def sum_server_use_time(Server):
total_use_time = 0.0
for key, value in Server.items():
total_use_time += Server[key]
if total_use_time != 898:
print(total_use_time)
return round(total_use_time, 2)
def main():
FileServer = {"EndUser1": 2.25, "EndUser2": 4.5, "EndUser3": 1, "EndUser4": 3.75, "EndUser5": 0.6, "EndUser6": 8}
print(sum_server_use_time(FileServer))
if __name__ == "__main__":
main()
您似乎想打印并返回相同的值:
print(total_use_time)
return round(total_use_time, 2)
您可以去掉打印或退货。然而,既然你的函数被称为
sum_server_use_time
,你应该坚持下去。
该函数应该只对时间求和,所以让我们修改该函数以仅执行此操作。
def sum_server_use_time(Server):
total_use_time = 0.0
for key, value in Server.items():
total_use_time += Server[key]
return round(total_use_time, 2)
然后在函数之外我们可以处理结果:
FileServer = {"EndUser1": 2.25, "EndUser2": 4.5, "EndUser3": 1, "EndUser4": 3.75, "EndUser5": 0.6, "EndUser6": 8}
total_use_time = sum_server_use_time(FileServer)
if total_use_time != 898:
print(total_use_time)
最终代码:
def sum_server_use_time(Server):
total_use_time = 0.0
for key, value in Server.items(): # Here you already have value
total_use_time += Server[key] # But you still grab it using Server[key]
return round(total_use_time, 2)
def main():
FileServer = {"EndUser1": 2.25, "EndUser2": 4.5, "EndUser3": 1, "EndUser4": 3.75, "EndUser5": 0.6, "EndUser6": 8}
total_use_time = sum_server_use_time(FileServer)
if total_use_time != 898:
print(total_use_time)
if __name__ == "__main__":
main()
对于超简短的答案:
字典有一个名为
.values()
的方法,它返回一个值列表。
所以你可以做
round(sum(FileServer.values()),2)
并且仍然得到20.1