接受 args 并放入 python 仅列出偶数

Accept args and put in a python list only even numbers

我写了下面的 Python 代码,但是它抛出一个错误

    def myfunc(*args):
         mylist = list()
         for num in args:
              if num%2 ==0:
              mylist = mylist.append(num)
        return mylist

它抛出以下错误 [-2, 4]!= None。

上面的代码有什么问题?

mylist = mylist.append(num)

Python 中的约定是使对象发生变异的方法 return Nonelist.append就是这样一个函数:它会向列表中添加一个元素,然后returnNone。通过重新分配,您的 mylist 变为 None;这显然会在下一次迭代中中断,因为 None 无法附加到。

将行改为

mylist.append(num)
def myfunc(*args):
        mylist = list()
        for num in args:
                if num%2 == 0:
                        mylist.append(num)

        return mylist

更正缩进并删除 mylist 对自身的分配后 - 上面的代码有效。

def myfunc(*args):
    mylist = list()
    for num in args:
        if num%2 == 0:
            mylist.append(num)
    return mylist

我想是因为你使用的方法不对.append

您的代码有缩进问题。如果您正确缩进它,它工作正常。像这样:

def myfunc(x):
    mylist = list()
    for num in x:
        if num%2 ==0:
            mylist.append(num)
    return mylist

试试这个!

def myfunc(*args):
    mylist = []
    for arg in args:
        if num % 2 == 0:
            mylist.append(arg)
    return mylist

一定要这样称呼它

myfunc(-2, 4)