5 回答
TA贡献1770条经验 获得超3个赞
print
您的程序没有完成预期的循环交互,如果您在循环中放置一些额外的语句(例如 ),这会更加明显print(i)
- 这是一种您可以在将来使用的简单调试技术。尽管实际上在您看到的输出中有一条线索,但它说的是from 1 to 1
而不是类似from 1 to 10
.
发生的事情是第一次while i == num:
测试时,它求值False
(0 不等于 10),因此永远不会进入循环。==
如果您将to更改<=
为此处,那么这将主要解决问题(循环将达到并包括 10)。
您可以进行的其他改进包括:
在
print
最后的语句中,使用num
instead ofi
:
print("The sum of even numbers from 1 to {0} = {1}".format(num, even_total))
在循环内部,在和块
i += 1
中都完成了,因此您可以在 if...else... 之后执行一个无条件的。if
else
i += 1
if i % 2 == 0: even_total += i else: odd_total += i i += 1
(我还建议+=
在此处使用总计,就像您已经在使用 一样i
。)
您也可以使用
for
循环 using代替,然后您根本range
不需要显式递增。i
请注意, 的上限range
必须比i
上一次迭代的值大 1。
for i in range(1, num + 1): if i % 2 == 0: even_total += i else: odd_total += i
TA贡献1877条经验 获得超1个赞
你正在使用这个while i==num: ,这意味着当loop第一次运行时它会采取num=1这意味着你while i==1是true和while loop休息。因此,它不能做总和。
所以你可以使用while<=num
这是你的代码
print()
print("Program to display sum of n terms of odd/even natural numbers!")
print()
num = int(input("Enter the number of natural numbers: "))
even_total = 0
odd_total = 0
i = 1
while i <= num:
if(i % 2 == 0):
even_total = even_total + i
else:
odd_total = odd_total + i
i += 1
print()
print("The sum of even numbers from 1 to {0} = {1}".format(num, even_total))
print("The sum of odd numbers from 1 to {0} = {1}".format(num, odd_total))
TA贡献1772条经验 获得超8个赞
while loop
你应该尝试用for loop
类似的替换
for i in range(1,num+1):
计算偶数和奇数和..
或替换while i==num
为i!=num+1
(i 不等于 num) 或 (i<=num)
TA贡献1786条经验 获得超13个赞
您需要更换while i==num为while i<=num
print()
print("Program to display sum of n terms of odd/even natural numbers!")
print()
num = int(input("Enter the number of natural numbers: "))
even_total = 0
odd_total = 0
i = 1
while i <= num:
if(i % 2 == 0):
even_total = even_total + i
else:
odd_total = odd_total + i
i += 1 #a small optimization to reduce number of lines
print()
print("The sum of even numbers from 1 to {0} = {1}".format(i-1, even_total))
print("The sum of odd numbers from 1 to {0} = {1}".format(i-1, odd_total))
因为,在退出 while 循环时你i将大于num,你应该i-1在循环后面的打印语句中打印。
我输入4并得到以下输出:
Program to display sum of n terms of odd/even natural numbers!
Enter the number of natural numbers: 4
The sum of even numbers from 1 to 5 = 6
The sum of odd numbers from 1 to 5 = 4
添加回答
举报