我必须先返回被13整除的数字列表。如果列表为空或数字为负,则该消息应为无效输入。
my_list_1 = [12, 65, 54, 39, 102, 339, 221, 50, 70, ]
def div_13(my_list):
my_list=numpy.array([])
result = list(filter(lambda x: (x % 13 == 0), my_list))
if (my_list.size != 0):
return(result)
print(result)
pass
else:
return("invalid input")
print("invalid input")
print(div_13('my_list_1'))
print(div_13(""))
您可以尝试类似:
my_list_1 = [12, 65, 54, 39, 102, 339, 221, 50, 70, ]
if my_list_1:
for num in my_list_1:
# checking condition
if num >= 0:
print("do your stuff")
else:
print("Negative number invalid input")
else:
print("list is empty invalid input")
我不确定numpy数组的用途,但是如果不使用它,您要问的内容应该看起来像这样
def div_13(aList):
if aList is None:
return "empty list"
for number in alist:
if number < 0:
return "negative number"
return [x for x in alist if x % 13 == 0]
我使用列表推导来除以13逻辑,看起来更具可读性
使用带有not
和any()
的列表推导式来确定列表中是否有任何负值。我还调整了其他一些错误编写的代码。我不确定整个列表是否必须为负数或仅一个数字...。我的解决方案仅是一个数字...
my_list_1 = [12, 65, 54, -39, 102, 339, 221, 50, 70]
my_list_2 = [12, 65, 54, 39, 102, 339, 221, 50, 70]
def div_13(my_list):
result = list(filter(lambda x: (x % 13 == 0), my_list))
if (len(my_list) > 0) and not any([number for number in my_list if number < 0]):
return(result)
else:
return("invalid input")
print(div_13(my_list_1))
print(div_13(my_list_2))
print(div_13(""))
输出:
invalid input
[65, 39, 221]
invalid input