我有一个练习,必须开发一个名为StepCounter
的课程。在生成StepCounter
的实例时,应将字符串形式的日期移交给该类。
必须有一种方法应将步数计数器加1,并应提供类似"You walked 1000 steps on 08.01.2019"
要对此进行测试,我还应该编写一个程序,该程序应该模拟随机数的步骤,但是应该在每个步骤之后进行计数。最后应显示文本。
所以我的第一个想法是这样的:
import random as rnd
class StepCounter:
date = "08.01.2019"
def increment_steps(self,counter):
self.counter = counter
self.counter += 1
def to_string(self):
print("On " + self.date + " I walked " + str(self.counter) + " steps.")
i = 0
random_steps = rnd.randint(1,300)
while i < random_steps:
count = StepCounter()
count.increment_steps(i)
i += 1
count.to_string()
但是我感觉这是一个错误的解决方案,因为我使用的是while循环而不是类。您有其他方法吗?
答案 0 :(得分:0)
我认为您在正确的轨道上。由于这是您的作业,因此在这里我不会写一个完整的答案,但我希望能给您一些正确方向的提示。
while循环不是这里的问题,在测试中使用while循环是完全可以的,因为您的类只允许递增1,所以您 do 需要一个循环来递增a随机次数。不过,您可能想研究将for
与range
一起使用循环。
让我们更仔细地看一下该循环。
while i < random_steps:
count = StepCounter()
count.increment_steps(i)
i += 1
在循环的每次迭代中(每次循环中的代码运行时),您都在创建StepCounter
的新实例。计步器初始化为0,因此您将不断创建新的计步器,并将其递增为1。在循环外初始化计数器,输出看起来会好很多。