2014-06-25 5 views
0

J'essaye d'ajouter ou d'ajouter la somme des itérations à travers une plage à une liste vide. J'ai pu le faire en utilisant une boucle:Ajouter/ajouter une somme à la liste

list=[] 
list_2=[] 
def clique(n): 
    for i in range(n): 
     list.append(i) 
     list_2=sum(list) 
print clique(4) 

mais chaque fois que j'essaie de le faire dans une fonction que je reçois cette erreur:

TypeError: range() integer end argument expected, got list.

les sorties est:

None

+0

Je suis confus. D'abord vous dites que vous obtenez un TypeError, alors vous dites que le programme s'exécute mais produit le mauvais résultat. Lequel est-ce? – Kevin

+0

Je m'excuse. Il sort "None" – user3727944

+0

Qu'attendez-vous qu'il produise? – Kevin

Répondre

0

Lorsque vous faites print some_function(), la sortie est la valeur de retour de la fonction. Si la fonction n'a pas d'instruction return, la valeur renvoyée est None par défaut. C'est pourquoi print clique(4) imprime None.

Si vous voulez print clique(4) pour afficher le contenu de list, renvoyez list.

def clique(n): 
    for i in range(n): 
     list.append(i) 
     list_2=sum(list) 
    return list 
+0

merci, ça marche. – user3727944

0

essayez ceci:

list=[] 

def clique(n): 
    for i in range(n): 
     list.append(i) 
     list_2=sum(list) 
    print 'list', list 
    print 'list_2', list_2 
clique(4) 
Questions connexes