循环不会停止?

时间:2014-02-06 04:22:18

标签: python loops while-loop integer

我是Python的新手,我正在尝试编写一个循环来找到LARGEST整数n所以n ^ 3< 12,000。我知道有些事情是错的,但我不知道是什么。请帮忙!

这是我的代码:

working = True

n = 12000

while working:
    n = n - 1
    if ((n * n * n) < 12000) and not working:
        print(n)

3 个答案:

答案 0 :(得分:2)

此代码中没有任何内容将working的值设置为False,因此working始终为True,因此循环永远不会退出。

答案 1 :(得分:1)

找到答案后,您需要将working标记转为False,就像这样

while working:
    n = n - 1
    if ((n * n * n) < 12000):   # You don't need the  `and not working:` check
        print(n)
        working = False

另外,在Python中,你可以找到像这样的数字的力量

n ** 3 == n * n * n

事实证明,您实际问题的答案是22:)

答案 2 :(得分:0)

该行

while working:

表示只要workingTrue,您就会继续循环播放。你永远不会在循环中将working设置为False,因此它将永远循环。

你可能想要这样的东西:

while working:
    n = n - 1
    if ((n * n * n) < 12000):
        working = False
        print(n)