Python 语法-分配一个变量,然后将其放入while循环不';不行。为什么?

Python 语法-分配一个变量,然后将其放入while循环不';不行。为什么?,python,Python,我想知道为什么这行不通: n = 10 x = 1 while x < n: x += 1 n += n * (x - 1) print n n=10 x=1 而x

我想知道为什么这行不通:

n = 10
x = 1
while x < n:
    x += 1
    n += n * (x - 1)
print n
n=10
x=1
而x
我已经指定了n=10,将其放置在while循环中应该类似于将10放置在那里。在终端中运行它就像我在那里放置了一个原始输入()

这项工作:

n = 10
x = 1
while x < 10:
    x += 1
    n += n * (x - 1)
print n 
n=10
x=1
当x<10时:
x+=1
n+=n*(x-1)
印刷品
在我看来是一样的


谢谢

在第一个例子中,
n
,你的极限,正在增加(
n+=n*(x-1)
),你有一个无限循环。在第二个循环中,限制是恒定的(
10
),因此它终止。

因为在while循环中,每次迭代都要更新
n

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

因此,在最初的几次迭代之后,n不再是10,并且它一直在增加

在做了更多类似类型的循环之后,我终于理解了它。原因是这会创建一个无限循环,因为:

n = 10
x = 1
while x < n:
    x += 1
    n += n * (x - 1)
print n
所以x永远追不上n,导致了一个无限循环

这是因为10永远不会增加,x可以赶上它

n = 10
x = 1
while x < 10:
    x += 1
    n += n * (x - 1)
print n 
n=10
x=1
当x<10时:
x+=1
n+=n*(x-1)
印刷品

事实并非如此。在第一个示例中,您正在修改
n
。导致
while
循环的不同行为。这就是原因。N不断变大,x无法通过。但是如果我想在while语句中放置一个原始输入变量,我会怎么做呢?谢谢。@LoiHuynh看,这就是获取原始输入的方式,只需使用另一个变量
raw
,例如,来存储它。
n = 10
x = 1
while x < 10:
    x += 1
    n += n * (x - 1)
print n