5 回答
TA贡献1772条经验 获得超5个赞
您尝试用于num
两个不同的目的:
累计总和
刚刚输入的号码
结果,您最终测试的是累积和的奇数/偶数,而不是刚刚输入的数字。
将它们分成两个不同的变量num
,total
然后就会变得更容易。
我建议还使用forfor
代替while
循环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贡献1812条经验 获得超5个赞
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贡献1796条经验 获得超4个赞
我不是 Python 程序员,但您需要第三个变量来计算总数。目前,当使用 += 赋值时, num 正在执行这部分工作。这意味着它是对小计而不是条目值进行取模。
它应该是:
num = int(input("Enter a number: "))
那是没有+的。
然后你需要第三个变量来显示最后的总数:
total = total + num
TA贡献2021条经验 获得超8个赞
num分配一个不同的变量来计算输入的数字,而不是将变量相加。
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)
对缩进进行了细微的更改,分配了一个额外的变量并且它起作用了。
TA贡献1788条经验 获得超4个赞
你说对了一部分。检查数字是否为奇数/偶数的逻辑很好。现在的问题是,每次你读取一个数字时,你都会将这个新数字添加到前一个数字上。这里的解决方案是使用另一个变量来跟踪总数,这样您就可以单独检查数字是否为奇数/偶数,并在最后得到总和。
另外,如果你检查mod == 0而不是检查,它看起来会更干净mod > 0。所以只需切换这些即可。最后,您不需要x从您的 中减去num,x只是您的计数器来跟踪您在给定时刻的迭代。
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)
添加回答
举报