接受 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 None
。 list.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)
我写了下面的 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 None
。 list.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)