首页 > 解决方案 > 如何正确编写带有条件 if 语句的 for 循环?

问题描述

我正在尝试创建一个 for 循环,该循环采用数字列表和所需数字并从列表中输出倍数列表。我已经用下面的代码做到了:

    def multiples(list_of_num, desired):
        for i in (list_of_num):
        if i%desired== 0:
            print(i, end='')

上面的代码有效,但我也想防止用户输入

multiples([], 0)

如果 list_of_num 中没有多个,我还想输出“[]”。

当我编写条件语句时,程序会输出不需要的值。这是我所拥有的一切以及不受欢迎的输出示例。

    def multiples(list_of_num, desired):
        for i in (list_of_num):
            if i%desired == 0:
                print(i, end='')
            if i%desired== 1:
                print("[]")
            if list_of_num == [] or desired == 0:
                print("No numbers provided")

输出:

multiples([1,2,3,4,5,6,7,8,9,10], 2)
[]
2[]
4[]
6[]
8[]
10

期望的输出:

multiples([1,2,3,4,5,6,7,8,9,10], 2)
2
4
6
8
10

甚至更好

multiples([1,2,3,4,5,6,7,8,9,10], 2)
[2, 4, 6, 8, 10]

标签: python

解决方案


def multiples(list_of_num, desired):

    if list_of_num == [] or desired == 0:
        print("No numbers provided")
        return []

    return [i for i in list_of_num if i % desired == 0]

print(multiples([1,2,3,4,5,6,7,8,9,10], 2))

输出:

[2、4、6、8、10]

print(multiples([], 2))

输出:

没有提供号码

[]

没有列表理解:

def multiples(list_of_num,desired):
    final = []
    if list_of_num == [] or desired == 0:
        print("No numbers provided")
        return []
    for i in list_of_num:
        if i % desired == 0:
            final.append(i)
    return final

推荐阅读