Ich habe eine Klasse namens Bootcamp erstellt, die es Benutzern ermöglicht, abgeschlossene Aufgaben hinzuzufügen, alle Aufgaben anzuzeigen, die sie ausführen sollen, und auch ihre unvollständigen Aufgaben zu überprüfen. Die Frage ist, ich habe einen Algorithmus erstellt, um den Fortschritt in Prozent zu überprüfen, wobei ich die Länge der vollständigen Liste über die Länge der gesamten Aufgabenlisten dividiere. Ich dachte zuerst, dass es die Änderungen nicht aufzeichnet, da es immer Null zurückgibt, aber nach dem Testen mit anderen Operanden wie + und * funktioniert es gut. Warum gibt Division immer 0 zurück? Den Code zu teilen würde helfen, mein Problem zu verstehen:Python-Klasse/immer 0 zurück
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`
es funktionierte gelöst werden ..... es gab mir eine Menge Kopfschmerzen, da ich mir dachte Methode nicht funktionierte. Jetzt kann ich es innerhalb der Klasse implementieren – Nix
Etwas bessere Lösung: Wechseln Sie in Py3 Stil-Division durch Hinzufügen von "von __future__ Import Division" an den Anfang der Datei. Dann wird '/' Fließkomma-Ergebnisse erzeugen. Wenn Sie eine Unterteilung nach dem Grund haben möchten, verwenden Sie '//', um sich explizit anzumelden. – ShadowRanger