def even_number(*args):
for even in args:
if even%2==0:
even
print(list(str(even)),end='')
我想将列表中的输出打印为[8,6,4]
,而是将其打印为[8],[6],[4]
。如果我推出最后一个print语句并且只是print(even)
,它显然没有列出输出。
答案 0 :(得分:0)
您的问题是每次进入if时都会打印。 相反,您希望每次进入循环时将数字添加到列表中,然后打印它:
def even_number(*args):
my_list = list()
for even in args:
if even%2==0:
my_list.append(even)
print(my_list)
编辑: 顺便说一下,其他答案是正确的。最好使用理解列表。我没有删除我的答案,所以你可以理解你的错误。
答案 1 :(得分:0)
def even_number(*args):
print([i for i in args if i % 2 == 0])
答案 2 :(得分:0)
如果要将结果打印为列表,则需要在打印前收集结果,即:
def even_number(*args):
evens = [a for a in args if a % 2 == 0]
print(evens)
# test:
even_number(*range(10)) # [0, 2, 4, 6, 8]
答案 3 :(得分:0)
只需使用列表理解:
def even_number(*args):
even = [n for n in args if n % 2 == 0]
print(even)
答案 4 :(得分:0)
简单代码
def even_number(*args):
result = []
for even in args:
if even % 2 == 0:
result.append(even)
return result
带有理解列表
def even_number(*args):
result = [x for x in args if x%2==0]
return result
用于使用函数even_number
print even_number(range(10))