gpt4 book ai didi

Python 类/总是返回 0

转载 作者:太空宇宙 更新时间:2023-11-03 15:23:46 26 4
gpt4 key购买 nike

我创建了一个名为 bootcamp 的类,允许用户添加已完成的任务、查看他们应该执行的所有任务以及检查未完成的任务。问题是我创建了一个算法来检查百分比进度,其中我将已完成列表的长度除以总任务列表的长度。我最初认为它不会记录更改,因为它总是返回零,但在使用其他操作数(例如 + 和 *)进行测试后,它运行良好。为什么除法总是返回0?分享代码将有助于理解我的问题:

class Bootcamp(object):
tasks = {1: "TDD", 2: "OOP", 3: "Programming Logic", 4: "Version
Control", 5: "Agile Methodology",
6: "Growth Mindset", 7: "Asking Questions", 8:
"Motivation and Commitment", 9: "Speaking"}
def __init__(self, name, tasks=tasks):
self.name = name
self.tasks = tasks
self.completed = []
self.incompleted = tasks.values()

def add_completed_items(self, i):
if i in self.tasks.keys():
self.completed.append(self.tasks[i])
self.incompleted.remove(self.tasks[i])
return "tasks added to complete"
else:
return "not in the tasks"


nick = Bootcamp("nick")
total_work = int(len(nick.tasks))
print nick.add_completed_items(1)
print nick.add_completed_items(2)
print nick.add_completed_items(3)
comleted_work = int(len(nick.completed))
progress = (comleted_work / total_work) * 100
print nick.incompleted`
print progress`

最佳答案

我觉得很简单。你试图将一个 int 除以另一个 int,这就是麻烦所在。在这种情况下,Python 执行整数除法,并且您尝试将较小的整数除以较大的整数,当然您几乎总是应该得到 0(除非整数相等)

int 替换为 float,如下所示

total_work = float(len(nick.tasks))
...
comleted_work = float(len(nick.completed))

问题应该得到解决

关于Python 类/总是返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43291608/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com