For循环将打印倍数,但不附加到Lis

2024-09-22 14:29:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建两个整数的倍数的两个列表。for循环将打印倍数,但不会将这些倍数附加到各自的列表中。如何将倍数附加到列表中

integer1 = int(input('input integer1: '))
integer2 = int(input('input integer2: '))

multiple_list1 = []
multiple_list2 = []

def multiples(n, list):
    list = []
    for i in range(n*100):
        if i % n == 0:
            #print(i)
            list.append(i)

print(multiples(integer1, multiple_list1))
print(multiples(integer2, multiple_list2))

Tags: 列表forinputdef整数multiplelistint
1条回答
网友
1楼 · 发布于 2024-09-22 14:29:20

不要在函数内重新分配list。现在变量不再引用调用方的列表

如果要先清空列表,请指定一个切片

def multiples(n, list):
    list[:] = []
    for i in range(n*100):
        if i % n == 0:
            #print(i)
            list.append(i)

使用list作为变量名也不是一个好主意,它会隐藏内置类名

顺便说一句,获得n所有倍数的更好方法是:

list[:] = range(0, n*100, n)

相关问题 更多 >