如何在python中对用户输入的数字求和?(仅当它们是偶数时)

如何在python中对用户输入的数字求和?(仅当它们是偶数时),python,Python,我是编程新手,我正在尝试编写一个代码,从用户那里获取六个数字,并且只求偶数和,但它会保留错误,例如,“不支持%的操作数类型:'list'和'int'如何处理它 还有,我想这样做 Enter a value: 1 Is it even number?:no Enter a value: 2 Is it even number?:yes Enter a value: 3 Is it even number?:no Enter a value: 6 Is it even number?:yes En

我是编程新手,我正在尝试编写一个代码,从用户那里获取六个数字,并且只求偶数和,但它会保留错误,例如,“不支持%的操作数类型:'list'和'int'如何处理它

还有,我想这样做

Enter a value: 1
Is it even number?:no
Enter a value: 2
Is it even number?:yes
Enter a value: 3
Is it even number?:no
Enter a value: 6
Is it even number?:yes
Enter a value: 1
Enter a value: 2
Enter a value: 3
Enter a value: 4
Enter a value: 5
Is it even number?: 
Is it even number?: 
Is it even number?: 
Is it even number?: 
Is it even number?:
但一直是这样,

Enter a value: 1
Is it even number?:no
Enter a value: 2
Is it even number?:yes
Enter a value: 3
Is it even number?:no
Enter a value: 6
Is it even number?:yes
Enter a value: 1
Enter a value: 2
Enter a value: 3
Enter a value: 4
Enter a value: 5
Is it even number?: 
Is it even number?: 
Is it even number?: 
Is it even number?: 
Is it even number?:
我怎样才能解决这个问题? 任何人谁能解决这个问题,请让我知道

Python 3.7

numbers = [int(input('Enter a value: ')) for i in range(6)]
question = [input('Is it even number?: ') for i in range(6)]

list1 = [] #evens
list2 = [] #odds

if numbers % 2 ==0:
    list1.append
else:
    list2.append

sum = sum(list1)
print(sum)

如果您能告诉我您是否知道更好的代码,我将不胜感激。请注意,没有必要问用户数字是否为偶数,但如果您确实想问,您可以添加
question=input('是偶数吗?:')。lower()
在循环中,如果问题=='yes'则执行
。此外,请注意,不能对列表执行
%
;它必须在单个数字上执行

evens = []
odds = []

for i in range(6):
  number = int(input('Enter a value: '))
  if number%2==0:
    evens.append(number)
  else:
    odds.append(number)

print(sum(evens))

您正在for循环中运行前两个输入语句,并同时打印。
您只需先获取输入6次,然后将其存储在列表中。之后,您可以检查每个输入,并在打印时将其存储在偶数和奇数列表中,然后最后打印总和。

您的if条件没有意义:

if numbers % 2 == 0:
[1,2,3,6]%2的值是多少?
没有“列表,模2”这样的东西。模是在两个标量数之间定义的

相反,你必须依次考虑每一个整数。这不是一个你要矢量化的操作;一旦你走了那么远,那就是一个麻木的能力。

for i in range(6):
    num = int(input('Enter a value: '))
    # From here, handle the *one* number before you loop back for the next.

如果要显示运行总和,可以执行以下操作:

import sys

sum_so_far = 0

while True:
    raw_input = input('Enter an integer: ')
    try:
        input_int = int(raw_input)
        if input_int == 0:
            sys.exit(0)
        elif input_int % 2 == 0:
            sum_so_far = sum_so_far + input_int
            print("Sum of Even integers is {}. Enter another integer er or 0 to exit".format(sum_so_far))
        else:
            print("You entered an Odd integer. Enter another integer or 0 to exit")
    except ValueError:
        print("You entered wrong value. Enter an integer or 0 to exit!!!")


第一个列表理解在第二个列表理解之前被完全评估。你需要一个适当的
for
-循环。在你的代码
中,如果数字%2==0:
数字
是一个
列表”,所以,首先对它进行迭代,使用一个
for`loop,然后进行计算