完成进度百分之几
按模型,四个任务里三个 done,progress(["done","todo","done","done"]) 交回几?
贯穿本节的产品模型(判题机纯 Python、无网,这是它的确定模型,见 spine.py):一个端到端 Python 产品,从需求→设计→实现→持久化→服务化→测试→版本化,一步步做出来。
实现:任务列表里值为 done 的算做完;done_count 数完成、progress=进度百分比、all_done=全做完否、remaining=还剩几个。
def done_count(tasks):
"""做完了几个任务(值为 done 的)。"""
return sum(1 for t in tasks if t == "done")
def progress(tasks):
"""完成进度(百分比整数)。"""
return done_count(tasks) * 100 // len(tasks)
def all_done(tasks):
"""全做完了吗。"""
return all(t == "done" for t in tasks)
def remaining(tasks):
"""还剩几个没做。"""
return sum(1 for t in tasks if t != "done")
print(progress(["done", "todo", "done", "done"]))
全部评论