减法错误

时间:2016-07-22 21:56:19

标签: python subtraction

我在使用Python构建的速度测试程序中遇到了一些错误。我的程序通过取0的变量,加1并打印其值来工作。它重复这10,000次,并记录这一切需要多长时间。在每1000个循环开始计时之后,将其排列成图表,其中包括列,"周期","时间"和"前一检查点之间的时间" 。前一个检查点之间的时间保持正常,直到达到5和6,000个周期。它看起来像这样;

enter image description here

以下是表格代码的片段:

print("   4,000        %ss                  %ss" % (check4, check4 - check3))
print("|          |            |                                  |")
print("   5,000        %ss                  %ss" % (check5, check5 - check4))
print("|          |            |                                  |")
print("   6,000        %ss                  %ss" % (check6, check6 - check5))

如你所见,结果飙升然后下跌。问题是,他们不应该这样做。两个事件之间可能存在负时间,这是不合理的。我已经检查了检查点变量的分配位置,它们是这样的;

    elif(count == 4000):
        check4 = round(time() - start, 3)
        check4 -= 0.3
        Beep(825, 100)
        print("        %s        %ss" % (count, round(time() - start, 2)))
    elif(count == 5000):
        check5 = round(time() - start, 3)
        check5 -= - 0.4
        Beep(850, 100)
        print("        %s        %ss" % (count, round(time() - start, 2)))
    elif(count == 6000):
        check6 = round(time() - start, 3)
        check6 -= 0.5
        Beep(875, 100)
        print("        %s        %ss" % (count, round(time() - start, 2)))

有一些我忽略的东西,因为我正在寻找别的东西,或者我的方法有问题。我只是作为最后的手段来到这里,我已经开始和关闭了至少3个月。

如果有人能找到造成这种价值异常的原因,请他们回复。

1 个答案:

答案 0 :(得分:2)

在你的代码段中的第二个elif语句中,看起来你有一个不应该出现的减号:

elif(count == 5000):
        check5 = round(time() - start, 3)
        check5 -= [-] 0.4
        Beep(850, 100)

这会使你的程序增加0.4而不是减去,这似乎是你的错误的来源。