如何在python中对用户输入的数字求和?(仅当它们是偶数时)
我是编程新手,我正在尝试编写一个代码,从用户那里获取六个数字,并且只求偶数和,但它会保留错误,例如,“不支持%的操作数类型:'list'和'int'如何处理它 还有,我想这样做如何在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
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,然后进行计算