我如何检查以下代码中是否为空或数字为负?

问题描述 投票:-3回答:4

我必须先返回被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(""))
python
4个回答
0
投票

您可以尝试类似:

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") 

0
投票

我不确定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逻辑,看起来更具可读性


0
投票

使用带有notany()的列表推导式来确定列表中是否有任何负值。我还调整了其他一些错误编写的代码。我不确定整个列表是否必须为负数或仅一个数字...。我的解决方案仅是一个数字...

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

-2
投票

enter image description here

查找负数和空列表的逻辑

© www.soinside.com 2019 - 2024. All rights reserved.