声明(无结果)

时间:2013-09-21 21:23:51

标签: python while-loop

我的程序应该打印从2到10的偶数之和,但是当我在shell中传递even_while()时,我看不到任何结果。问题出在哪?

def even_while():


    number = 2
    s = 0

    while number < 10:
        if number % 2 == 0:
            old_number = number
            number = number + 1
            s = s + old_number

    print(s)  

谢谢!

3 个答案:

答案 0 :(得分:5)

“无限循环”。 number从2开始。这是偶数,所以加1。这使得number为3.现在while循环“永远”。 number % 2 == 0永远不会成立(number为3!),number永远不会再次更改。

答案 1 :(得分:2)

除非number,否则不会增加number % 2 == 0,因此while循环不会取得任何进展。

此外,您可能会喜欢range内置:

def even_while():
    s = 0

    for number in range(2, 10):
        if number % 2 == 0:
            old_number = number
            s = s + old_number

    print(s)

答案 2 :(得分:0)

def even_while():

    number = 0
    s = 0

    while number < 11:
        number = number + 1
        if number % 2 == 0:
            old_number = number
            s = s + old_number

    print(s) 

我认为这没问题。