簡體   English   中英

循環不會停止嗎?

[英]Loop that won't stop?

我是Python的新手,我正在嘗試編寫一個循環以查找最大的整數n,因此n ^ 3 <12,000。 我知道有什么問題,但我不知道是什么。 請幫忙!

這是我的代碼:

working = True

n = 12000

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

這段代碼中沒有任何內容將working的值設置為False ,因此working始終為True ,因此循環永遠不會退出。

找到答案后,您需要將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 :)

while working:

說只要workingTrue ,您就將繼續循環播放。 您永遠不會在循環內部將working設置為False ,因此它將永遠循環。

您可能想要這樣的東西:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM