使用 print 和 DIct

问题描述 投票:0回答:1
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

我没有得到答案,我在这里做错了什么,有人可以解释一下吗?我对这个问题感到沮丧,你能列出我需要完美理解这些问题的主题吗

python-3.x dictionary printf
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.