1

我的程序应该打印从 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)  

谢谢!

4

3 回答 3

5

“无限循环”。 number从 2 开始。这是偶数,所以加 1。剩下number的为 3。现在while循环“永远”循环。 number % 2 == 0永远不会是真的(number是 3!),并且number永远不会再改变。

于 2013-09-21T21:28:59.227 回答
2

您不会增加numberunless 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)
于 2013-09-21T21:27:08.963 回答
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) 

我认为这没关系。

于 2013-09-21T21:31:58.597 回答