2014-04-13 60 views
1
list == [] 

def MultiplesNumber(a): 
    for i in range(1, a+1): 
      if a % i == 0: 
        return i 

list.append(MultiplesNumber(100)) 
TypeError: descriptor 'append' requires a 'list' object but received a 'int' 

我不能将i添加到list,有什么想法吗?我不能将int添加到列表

回答

6

两件事情是你的代码错误:

  • 你正在做一个list == []返回一个真或假,因为==是一个比较操作。在这种情况下,它返回False。您需要使用=来初始化一个变量。
  • list是python内置类型的名称,使用其他名称作为变量名称。

固定两者:

alist = [] 

def MultiplesNumber(a): 
    for i in range(1, a+1): 
      if a % i == 0: 
        return i 

alist.append(MultiplesNumber(100)) 

给出正确的输出。

+0

谢谢,我不知道** list **是一个关键字。 ==是一个错字。 – andJusticeForAll

+0

'list'不是关键字。它是内置列表类型的名称,因此不是一个好的变量名称。但是在这个角色中并不禁止,只是一个坏主意。 – Blckknght

+0

@Blckknght更新。谢谢 – shaktimaan

0

list是内置关键字,它会影响您的list变量。您需要为变量分配一个列表,而不是检查它是否相等。

lst = [] 


def MultiplesNumber(a): 
    return [x for x in range(1, a + 1) if a % 2 == 0] 


lst.append(MultiplesNumber(100)) 
print(lst)