5 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊
您嘗試用于num
兩個(gè)不同的目的:
累計(jì)總和
剛剛輸入的號(hào)碼
結(jié)果,您最終測(cè)試的是累積和的奇數(shù)/偶數(shù),而不是剛剛輸入的數(shù)字。
將它們分成兩個(gè)不同的變量num
,total
然后就會(huì)變得更容易。
我建議還使用forfor
代替while
循環(huán)x
:
total = 0
for x in range(5):
num = int(input("Enter a number: "))
mod = num % 2
if mod > 0:
print(num, "is an odd number.")
else:
print(num, "is an even number.")
total += num
print("Your total is", total)

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
x = 0
total_num = 0
while x < 5:
num = int(input("Enter a number: "))
mod = num % 2
if mod > 0:
print(num,"is an odd number.")
else:
print(num,"is an even number.")
total_num += num
x += 1
print("Your total is",total_num)

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
我不是 Python 程序員,但您需要第三個(gè)變量來(lái)計(jì)算總數(shù)。目前,當(dāng)使用 += 賦值時(shí), num 正在執(zhí)行這部分工作。這意味著它是對(duì)小計(jì)而不是條目值進(jìn)行取模。
它應(yīng)該是:
num = int(input("Enter a number: "))
那是沒(méi)有+的。
然后你需要第三個(gè)變量來(lái)顯示最后的總數(shù):
total = total + num

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
num分配一個(gè)不同的變量來(lái)計(jì)算輸入的數(shù)字,而不是將變量相加。
x = 0
num = 0
sum1 = 0
while x < 5:
x += 1
num = int(input("Enter a number: "))
sum1 += num
mod = num % 2
if mod > 0:
print(num,"is an odd number.")
else:
print(num,"is an even number.")
print("Your total is",sum1)
對(duì)縮進(jìn)進(jìn)行了細(xì)微的更改,分配了一個(gè)額外的變量并且它起作用了。

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊
你說(shuō)對(duì)了一部分。檢查數(shù)字是否為奇數(shù)/偶數(shù)的邏輯很好?,F(xiàn)在的問(wèn)題是,每次你讀取一個(gè)數(shù)字時(shí),你都會(huì)將這個(gè)新數(shù)字添加到前一個(gè)數(shù)字上。這里的解決方案是使用另一個(gè)變量來(lái)跟蹤總數(shù),這樣您就可以單獨(dú)檢查數(shù)字是否為奇數(shù)/偶數(shù),并在最后得到總和。
另外,如果你檢查mod == 0而不是檢查,它看起來(lái)會(huì)更干凈mod > 0。所以只需切換這些即可。最后,您不需要x從您的 中減去num,x只是您的計(jì)數(shù)器來(lái)跟蹤您在給定時(shí)刻的迭代。
x = 0
num = 0
total = 0
while x < 5:
x += 1
num = int(input("Enter a number: ")) # Read new number
total += num # Add new number to the total
mod = num % 2 # Check if new number is odd
if mod == 0:
print(num,"is an even number.")
else:
print(num,"is an odd number.")
print("Your total is",total)
添加回答
舉報(bào)