Qs de débutant sur les fonctions.

Le
Laurent FRANCOIS
Bonjour,

> list=[1]
> list.append(2)
> print list
> [1, 2]

Ca ca va je comprends

mais alors ca je ne comprends pas la suite:

> list=list.append(47)
> print list
> None


J'ai compris que la fonction ou plutot la méthode "append"
n'a pas de clause "return" et donc renvoit None. Mais alors dans
ce cas pourquoi

> list.append(2)
> print list
> [1, 2]

qui fait appel a la méthode "append" ne renvoit pas None?

A bientot et merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
NicolasP
Le #16483921
Bonjour,

Bonjour,

list=[1]
list.append(2)
print list
[1, 2]



Ca ca va je comprends



Tant mieux.

mais alors ca je ne comprends pas la suite:

list=list.append(47)
print list
None





C'est normal et tout à fait logique.

J'ai compris que la fonction ou plutot la méthode "append"
n'a pas de clause "return" et donc renvoit None. Mais alors dans
ce cas pourquoi

> list.append(2)
> print list
> [1, 2]

qui fait appel a la méthode "append" ne renvoit pas None?


Qui a dit qu'elle ne renvoie pas None ?
list.append(2) ajoute 2 à la liste list et renvoie None.
print list affiche le contenu de la liste list.
Où est le problème ?

!!! ATTENTION !!!
list n'est pas un mot clef réservé du langage mais tu t'exposes à de gros problèmes si tu l'utilises en tant que nom de variable. list est une classe faisant partie de la bibliothèque standard.
Essayes help(list) dans une session interactive de l'interpréteur.

Nicolas
Daireaux Jean-Baptiste
Le #16483911
Laurent FRANCOIS a écrit :
Bonjour,

list=[1]
list.append(2)





Ici list.append renvoie None et tu en fait rien.

print list
[1, 2]



Ca ca va je comprends

mais alors ca je ne comprends pas la suite:

list=list.append(47)





Ici list.append renvoie None et tu l'affecte à list du coup, list=None
CQFD.

print list
None




J'ai compris que la fonction ou plutot la méthode "append"
n'a pas de clause "return" et donc renvoit None. Mais alors dans
ce cas pourquoi

> list.append(2)
> print list
> [1, 2]

qui fait appel a la méthode "append" ne renvoit pas None?



Si, append renvoie bien None, mais t'en fait rien. si tu fait :

a=list.append(3)
print a
None


A bientot et merci



De rien
Salut.
Publicité
Poster une réponse
Anonyme