Python 编写函数mult3(),该函数接受整数列表作为输入,并仅打印3的倍数,每行一个

Python 编写函数mult3(),该函数接受整数列表作为输入,并仅打印3的倍数,每行一个,python,Python,我需要编写一个函数,该函数执行以下操作: 1.将列表作为输入。 2.仅打印3的倍数,每行一个 我算出了任务1,但我被困在每行一个部分的2上 def mult3(lst): for num in lst: if num % 3 == 0: print(num, end=' ') print() 我知道问题出在最后一个print()函数中,在当前代码中,它仍然打印新行,但只是将其留空。我认为这是因为: for num in l

我需要编写一个函数,该函数执行以下操作: 1.将列表作为输入。 2.仅打印3的倍数,每行一个

我算出了任务1,但我被困在每行一个部分的2上

def mult3(lst):
    for num in lst:
        if num % 3 == 0:
            print(num, end=' ')
        print()
我知道问题出在最后一个print()函数中,在当前代码中,它仍然打印新行,但只是将其留空。我认为这是因为:

    for num in lst:
        if num % 3 == 0:  
        print()

即使数字不是3的倍数,也将打印一行。这是有道理的,但我不知道如何仅在if num%3==0:为真时打印一行

只需将if语句中的新行字符打印为结束行字符串:

def mult3(lst):
    for num in lst:
        if num % 3 == 0:
            print(num, end='\n')

如果它们应该在单独的行上,为什么要设置
end='
?@jornsharpe的意思是,使用
print(num.emd='')而不是
print(num)
。这将在您每次调用
print
时自动下降一行,谢谢各位。我明白我的错误了,我不应该使用end参数。是的,只是不要将任何内容传递给
end
参数。是的,但这是为了澄清。因为他使用了尾行和单独的打印来插入行