模拟StepCounter

时间:2019-01-08 22:18:57

标签: python class

我有一个练习,必须开发一个名为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循环而不是类。您有其他方法吗?

1 个答案:

答案 0 :(得分:0)

我认为您在正确的轨道上。由于这是您的作业,因此在这里我不会写一个完整的答案,但我希望能给您一些正确方向的提示。

while循环不是这里的问题,在测试中使用while循环是完全可以的,因为您的类只允许递增1,所以您 do 需要一个循环来递增a随机次数。不过,您可能想研究将forrange一起使用循环。

让我们更仔细地看一下该循环。

while i < random_steps:
    count = StepCounter()
    count.increment_steps(i)
    i += 1

在循环的每次迭代中(每次循环中的代码运行时),您都在创建StepCounter的新实例。计步器初始化为0,因此您将不断创建新的计步器,并将其递增为1。在循环外初始化计数器,输出看起来会好很多。