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
添加回答
舉報