Python 将数字追加到emptylist

Python 将数字追加到emptylist,python,Python,我试图返回附加到空列表中的2个数字的除数。为什么什么都没印?我期望1,2,3被返回给mw,但我得到返回“[]”和“无” def-fun(t,g): 列表1=[] i=1 r=1 而我

我试图返回附加到空列表中的2个数字的除数。为什么什么都没印?我期望1,2,3被返回给mw,但我得到返回“[]”和“无”

def-fun(t,g):
列表1=[]
i=1
r=1
而我
i%t
从来都不是
0
,因为您在
i==t
时退出while循环。也许你的意思是
t%i

同样适用于
r
g

您的函数没有
返回
,因此它将隐式返回

您应该将
返回列表1
添加到它的末尾

def fun (t,g) :
    list1 = []
    i = 1
    r = 1
    while i < t :
        if t % i == 0 :
            list1.append(i)
        i = i + 1
    while r < g :
        if g % r == 0 :
            list1.append(r)
        r = r + 1
    print list1
    return list1

x = 4
y = 6

t = fun(x,y)
print t

因此,您仍然需要计算出重复项

这是您的实际缩进吗?我修复了它并添加了一个返回语句,但没有打印出列表?请尝试gnibbler的答案。4%1是0。。这是缩进,不是缩进logic@Leifingson,将
i
t
值进行了转换。出于某种原因,新用户在这里发布代码时,第一行缩进错误是很常见的。@Leifingson这是逻辑。如果是缩进,程序应该抛出缩进错误对不起,这是逻辑,甚至没有看到。我第二次把它们混在一起,谢谢,我现在看到了。是的,1%4。。。这是逻辑
def fun (t,g) :
    list1 = []
    i = 1
    r = 1
    while i < t :
        if t % i == 0 :
            list1.append(i)
        i = i + 1
    while r < g :
        if g % r == 0 :
            list1.append(r)
        r = r + 1
    print list1
    return list1

x = 4
y = 6

t = fun(x,y)
print t
[1, 2, 1, 2, 3]
[1, 2, 1, 2, 3]