Python百分比完整计算器



EDITZ:我已经想通了。:)我所要做的就是在100的末尾添加一个.0(同时添加一个int()语句)P是浮点/小数!

我正在做一个因子计算器。它工作得很好。以下是代码的示例输出:

获取{10}的因子

[1,2,5,10]

获取{120}的因子

[1,2,3,4,5,6,8,10,12,15,20,24,30,40,60120]

依此类推(您在大括号({})中输入文本)。它是用Python 2.7制作的。为了使它达到110%的完美(比以前更好:P),我希望它显示已计算的金额。。虽然我的电脑速度很快,几乎可以瞬间计算出120的因子,但如果我输入一个像5000这样的大数字,大约需要30秒才能计算出来。有点长(这是因为它计算了2500万个方程)。如果它在屏幕底部显示完成的百分比,这样你就可以知道还剩多长时间,那就太好了。

因此,当您输入5作为数字时,我的代码(稍后将向您展示)将输出此值。

获得因子5计算完成:20%计算完成:40%计算完成:60%计算完成:80%[1,5]

(我不知道为什么它没有显示100%,不过我可以很容易地添加它,所以不用担心。)好吧,所以它运行得很好。太棒了现在我有一个问题。。

获取101 的因子

计算完成:0%

计算完成:0%

计算完成:0%

计算完成:0%

计算完成:0%

计算完成:0%


计算完成:0%

计算完成:0%

计算完成:0%

[1101]

这显然是个问题。只有当你输入一个等于或小于100的数字,并且sense 100几乎立即计算出来时,它才有效,这有点毫无意义。:P

现在可能是展示我的代码的好时机:

def getFactors(n):
    out = [1]
    for i in range(1, n):
        for j in range(1, n):
            if (i * j == n):
                out.append(i)
        print "Calculation completed: " + str(100 / n * i ) + "%"
    out.append(n)
    return out
while(0 < 1):
    number = int(raw_input("Get factors of "))
    print getFactors(number)
    print ""

主要关注部分:第一个print函数P

有什么线索表明它为什么不起作用吗?如果你能帮忙的话,非常感谢。:)

默认情况下,如果所有操作数都是整数,Python 2会对整数运算进行计算。

        print "Calculation completed: " + str(100. / n * i ) + "%"
        #                                        ^
        #                      the "dot" here force calculation
        #                      using floating point values

Padraic Cunningham建议的另一种选择是将此导入添加到您的源文件中:

from __future__ import division

它使Python 2中的除法行为与Python 3中的类似(有关详细信息,请参阅PEP-238)

当执行100 / n时,它将其视为两个整数,因此结果也是一个整数。

通过将该行更改为以下行来强制其为浮动:

str(100.0 / n * i)

在该计算中有一个浮点数将导致结果也是一个浮点号

最新更新