我想这个函数来工作:Python:我做错了什么?
def getEvenNumbers (numbers):
bo = []
for num in numbers:
bo.append(num)
if num % 2 == 0:
return bo
getEvenNumbers([1, 4, 8, 9])
回报[4]
虽然。
我希望更多的结果,如[4,8]
但它不工作,我只得到[4]
?我究竟做错了什么?
我想这个函数来工作:Python:我做错了什么?
def getEvenNumbers (numbers):
bo = []
for num in numbers:
bo.append(num)
if num % 2 == 0:
return bo
getEvenNumbers([1, 4, 8, 9])
回报[4]
虽然。
我希望更多的结果,如[4,8]
但它不工作,我只得到[4]
?我究竟做错了什么?
一旦发现其中一个数字是偶数,您就返回。
def get_even_numbers(numbers):
bo = []
for num in numbers:
if num % 2 == 0:
bo.append(num)
return bo
或者:
def get_even_numbers(l):
return [n for n in l if n % 2 == 0]
@Jeff IDK,这很奇怪。 – NullUserException
好吧,我只是试图达到底部。它发生在我身上之前,并认为这是我做的。 –
谢谢NullUser ...我无法相信它只是返回函数的位置......非常感谢你 –
试试这个:
def getEvenNumbers (numbers):
bo = []
for num in numbers:
if num % 2 == 0:
bo.append(num)
return bo
其实你的代码,目前给出的将返回[1,4],而不是[4]。您的函数当前只是将数字附加到列表中,直到找到第一个数字,然后返回。
你想要的东西,如:
def getEvenNumbers(numbers):
return [n for n in numbers if not n % 2]
重复[Python的:在函数返回列表结果问题(http://stackoverflow.com/questions/7439513/python-return-list-result-problem你在不久之前就问过这个问题。请仔细阅读答案,我的演示文稿就是如何做到的 - 积累到列表中,然后在完成时返回。 – agf
是... agf ...我跟着那一步...更多的理由甚至对什么做错了感到困惑 –
@agf这是怎么回事? – NullUserException