我应该编写函数
print_even_values
,输入一个整数列表,该列表打印列表中的每个偶数。调用 print_even_values([2, 8, 1, 9, 0, 19, 24])
将在 shell 窗口中产生以下输出:
2
8
0
24
我的做法是:
def print_even_numbers(n: list) -> list:
'''Return a list of even numbers given a list of integers'''
for x in list:
if x % 2 == 0:
return(x)
assert print_even_numbers([2, 4, 2, 4, 5, 6]) == [2, 4, 2, 4, 6]
assert print_even_numbers([4, 1, 3, 2, 5, 9]) == [4, 2]
但是有一个错误。另外,如何使我的输出与要求相似?即
[2, 4, 2, 4, 6]
与
2
4
2
4
6
我认为问题是当它是偶数时你返回一个数字,而不是返回偶数列表。您应该在偶数时存储一个数字,然后返回列表:
def print_even_numbers(number_list):
even_numbers = [] # define the empty list of even numbers
for number in number_list:
if number % 2 == 0: # check if number is even
even_numbers.append(number) # if it is, store it
return even_numbers # Last step returns the list of even numbers
你也可以使用更长的版本,如下所示:
def generate_evens():
result = []
for x in range(1, 50):
if x % 2 == 0:
result.append(x)
return result
print(generate_evens())
你有一个简短的使用这个:
def generate_evens1():
return [x for x in range(1, 50) if x % 2 == 0]
print(generate_evens1())