所以我只是想知道为什么我的下面的代码没有按预期运行,我希望它在给定奇数时继续将奇数值添加到奇数计数,同样与平均值一样。但无论我放什么,它只是将它添加到奇数。建议?
odd_value = 0
even_value = 0
x = int(input('enter'))
while x != 0:
if x == 3 or 5 or 7 or 9:
odd_value += x
elif x == 2 or 4 or 6 or 8:
even_value += x
x = int(input('enter'))
print('The sum of the odds is ',odd_value)
print('The sum of the evens is' ,even_value)
答案 0 :(得分:0)
你创造了一个无限循环。 x永远不会等于0,因此你的循环将永远继续。它没有退出点。您可以在任何地方使用break
语句,以便在需要时退出循环。
另外,你的逻辑错了:
if x in (3, 5, 7, 9):
odd_value += x
elif x in (2, 4, 6, 8):
even_value += x
...或
if x == 3 or x == 5 or x == 7 or x == 9:
odd_value += x
elif x == 2 or x == 4 or x == 6 or x == 8:
even_value += x
现在它正确评估每个单独的语句,而不是仅仅看到 隐式 True
。
这就是原始陈述不起作用的原因:
>>> if x == 3 or 5 or 7 or 9:
... print "Oh Darn!"
Oh Darn!
让我们用英语看看:
if x is equal to 3 # Nope! if 5 # That's True so let's go on! Execute the if code block Forget the elif code block