我必须用两个类函数编写这种代码,但是在打印所有偶数而不是1时遇到了麻烦。
stroke-width
应打印:
2*6=12
相反,我得到:
viewBox="-6 -6 609 416"
谢谢
答案 0 :(得分:1)
def is_even(the_value):
if the_value % 2 == 0:
return True
else:
return False
def find_even(the_list):
even_list = []
for sublist in the_list:
if is_even(sublist):
even_list.append(sublist)
return even_list
a_list = [50,23,30,41,99]
print(find_even(a_list))
您对return even_list
的缩进不正确,导致该方法在第一次迭代后一到达return语句就终止并返回列表。
答案 1 :(得分:1)
您可以像下面这样写
def is_even(the_value):
if the_value % 2 == 0:
return True
return False
def find_even(the_list):
even_list = [item for item in the_list if is_even(item)]
return even_list
a_list = [50,23,30,41,99,70]
print(find_even(a_list))
输出
[50, 30, 70]
说明
您的代码不起作用,因为您的return even_list
处于if条件内,因此当它与第一个偶数匹配时,它将追加到列表中并返回该列表,然后退出该函数。
答案 2 :(得分:0)
您应该使用:
def is_even(the_value):
if the_value % 2 == 0:
return True
else:
return False
def find_even(the_list):
even_list = []
for sublist in the_list:
if is_even(sublist):
even_list.append(sublist)
# return even_list
return even_list
a_list = [50,23,30,41,99]
print(find_even(a_list))
输出:
[50, 30]
答案 3 :(得分:0)
它不起作用,因为return
仅返回一次。
下面的内容也是如此,更短,更快:
def find_even(l):
return [i for i in l if not i%2]
演示:
def find_even(l):
return [i for i in l if not i%2]
a_list = [50,23,30,41,99]
print(find_even(a_list))
输出:
[50, 30]
答案 4 :(得分:0)
在def find_even(the_list)中:您应在for循环外返回even_list
def find_even(the_list):
even_list = []
for sublist in the_list:
if is_even(sublist):
even_list.append(sublist)
return even_list