如何在函数中输入列表?在python中

时间:2014-10-16 01:09:10

标签: python

编写一个名为“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'

为什么我收到此错误消息?

2 个答案:

答案 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