簡體   English   中英

語法-分配變量然后將其放入while循環中不起作用。 為什么?

[英]Syntax - Assigning a variable then putting it in while loop doesn't work. Why?

我想知道為什么這行不通:

n = 10
x = 1
while x < n:
    x += 1
    n += n * (x - 1)
print n

我已經分配了n = 10,將其放置在while循環中應該就像在其中放置10。 在Terminal中運行它的行為就像我在其中放置了raw_input()一樣。

這有效:

n = 10
x = 1
while x < 10:
    x += 1
    n += n * (x - 1)
print n 

在我看來...

謝謝!

在第一個示例中,您的極限n正在增加( n += n * (x - 1) ),並且您有無限循環。 在第二個中,限制為常數( 10 ),因此終止。

因為在while循環中,對於每次迭代,您還更新了n

while x < n:
    x += 1
    n += n * (x - 1)

因此,在前幾次迭代之后,n不再是10,並且一直在增加。

在執行更多類似類型的循環之后,我終於明白了。 原因是這會導致無限循環,原因是:

n = 10
x = 1
while x < n:
    x += 1
    n += n * (x - 1)
print n

n隨x增加:

x += 1
n += n * (x - 1)

因此,x永遠不會趕上n並導致無限循環。

這是可行的,因為10永遠不會增加,並且x可以趕上它。

n = 10
x = 1
while x < 10:
    x += 1
    n += n * (x - 1)
print n 

暫無
暫無

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

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