首页 > 解决方案 > Python 开始:不知道如何告诉用户他们的数字是奇数还是偶数(对于 5 个数字)

问题描述

我刚刚注册,我不确定这是否会转到正确的论坛(假设这是这里的事情)。

几周前我刚开始学习python。我们正在做迭代。

这是我们这次作业的阅读材料:https ://www.py4e.com/html3/05-iterations

这是我的代码的任务。

编写一个程序,让用户一次输入五个数字。每次输入后,告诉用户该数字是奇数还是偶数。在所有输入的末尾,在屏幕上显示所有输入数字的总和。

x = 0
num = 0   
while x < 5:
    x += 1
    num += int(input("Enter a number: "))
    mod = num % 2
    if mod > 0:
        print(num-x,"is an odd number.")
    else:
        print(num-x,"is an even number.")
print("Your total is",num)

这不适用于作业的奇数和偶数部分。我很确定这与每次用户输入一个新数字时“num”变量的变化有关,而不是仅仅告诉用户他们刚刚输入的数字是偶数或奇数,而是添加数字。

所以,如果第一个用户输入是 3,它会说它很奇怪。但是如果他们再次为第二个数字输入 3,它会说它是偶数,因为它将 3 + 3 相加得到 6。显然,我不希望它在最终打印之前将数字加起来。

This is my output:
Enter a number: 1
0 is an odd number.
Enter a number: 1
0 is an even number.
Enter a number: 1
0 is an odd number.
Enter a number: 1
0 is an even number.
Enter a number: 1
0 is an odd number.
Your total is 5

显然,所有这些 1 都应该是奇数,而我现在才意识到 0 不属于那里。

标签: pythonvariableswhile-loopiteration

解决方案


您正在尝试num用于两个不同的目的:

  • 累计和
  • 刚刚输入的号码

因此,您最终会测试累积和的奇数/偶数,而不是刚刚输入的数字。

将它们分成两个不同的变量numtotal然后它会变得更容易。

我建议还使用 afor而不是while循环 for 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)

推荐阅读