我的程序应该打印从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)
谢谢!
答案 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)
我认为这没问题。