编写一个名为“find_even_count”的函数,允许用户在键盘上输入任意正整数序列,然后打印用户输入的正整数偶数。数字序列在开始时是未知的。用户可以输入负数以显示序列的结束。 例如:如果用户输入序列, 1,3,5,23,56,14,68,25,12,-1 然后你的功能需要打印“4偶数”,因为序列中有4个偶数。 提示:使用while循环
这是我的代码
find_even_count(x):
i = x
even_count = 0
while x> 0:
if i%2 ==0:
even_count+=1
print even_count
我一直收到错误代码
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
find_even_count(2,22,224,24,-1)
File "/Users/rayhow/Desktop/assignment2_Q4.py", line 5, in find_even_count
if i%2 ==0:
TypeError: unsupported operand type(s) for %: 'tuple' and 'int'
为什么我收到此错误消息?
答案 0 :(得分:1)
在这里,你去找我的朋友
input_list = raw_input('give me list of numbers: ')
print(filter(lambda x: x.isdigit() and not int(x) % 2, input_list.split()))
会给你
(ocmg)brunsgaard@archbook /tmp> python pos.py
give me list of numbers: 1 2 3 4 -2 -1 your mother 54
['2', '4', '54']
此外,如果您想要更简单的解决方案,请使用
even = lambda l: len([x for x in l if not x % 2 and x > 0])
这将输出
even([1, -2, 3, 4, 6, 5])
2
因为有2个偶数
答案 1 :(得分:0)
def find_even_count(x):
even_count = 0
for n in x:
if n%2 ==0:
even_count+=1
print even_count