2013-10-23 71 views
-2

即時嘗試返回我附加到空列表中的2個數字的除數。爲什麼沒有打印?要返回IM預計爲1,2,3毫瓦,但我得到恢復「[]」和「無」將數字附加到emptylist

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

x = 4 
y = 6 

t = fun(x,y) 
print t 
+2

那是你的實際縮進? –

+0

修復您的縮進 – Yohann

+0

我修復了它並添加了一個返回語句,但是我沒有打印回列表? –

回答

1

i % t是從來沒有0因爲你是退出while循環時i == t。也許你的意思是t % i

同樣對於rg

您的功能沒有一個return所以它會隱返回None

您應該添加return list1到它的結束。

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] 

所以你仍然需要制定出重複

+0

4%1是0 ..這是縮進,而不是邏輯 – Leifingson

+1

@Leifingson,你有'i'和't'值轉置。出於某種原因,在這裏發佈代碼時,新用戶通常會忽略第一行的縮進。 –

+0

@Leifingson這是邏輯。如果這是縮進程序應該拋出縮進錯誤 – aIKid