语法 - 分配变量然后将其放入while循环不起作用。为什么?

时间:2015-05-29 03:53:17

标签: python

我想知道为什么这不起作用:

f(x::Number) = begin x < 1 ? (y=0) : (y=2); return(y); end

我已经分配了n = 10,将它放在while循环中应该就像在那里放置一个10。在终端中运行它就像我在那里放置了一个raw_input()。

这有效:

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

对我来说看起来一样......

谢谢!

3 个答案:

答案 0 :(得分:1)

在第一个示例中,n,您的限制正在增加(n += n * (x - 1))并且您有一个无限循环。在第二个中,限制是常量(10),因此终止。

答案 1 :(得分:1)

因为在while循环中,对于每次迭代,您还会更新n

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

因此,在前几次迭代之后,n不再是10,并且它不断增加。

答案 2 :(得分:0)

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

INSERT INTO TEST_TABLE(TABID, TABNAME, DOB, CREATEDBY)
    VALUES (SEQ_TAB_TABID.NEXTVAL, :1, TO_DATE(:2, 'MM/DD/YYYY'), :3)

n随x增加:

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

所以x永远不会赶上n并导致无限循环。

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

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