我的印象是,在我的while循环中添加以下if语句使python只选择小于7的i的奇数值并将它们求和。但是,事实并非如此。
这是我的代码:
i = 0
sum = 0
while i < 7:
if (i % 2) == 1:
sum += i
i += 1
我希望总和为9,但是会发生无限循环,从而导致总和为无限。
我似乎无法理解。任何帮助表示赞赏。预先感谢!
答案 0 :(得分:1)
您只能在i
内递增if
,因此,如果不表示条件,i
将永远保持不变
i = 0
sum = 0
while i < 7:
if (i % 2) == 1:
sum += i
i += 1
print(sum)
输出:
9
答案 1 :(得分:0)
当您继续调节i % 2
时,但是如果没有通过,则i
永远不会改变,它将始终退出if
语句来解决它:
i = 0
sum = 0
while i < 7:
if (i % 2) == 1:
sum += i
i += 1
print(sum)
您必须在i += 1
行中缩进4个空格。
答案 2 :(得分:0)
在类似情况下,使用for循环比使用while循环更好。特别是如果您的循环很长。 link
sum = 0
for i in range(7):
if (i % 2) == 1:
sum += i