Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Qs de débutant sur les fonctions.

2 réponses
Avatar
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

2 réponses

Avatar
NicolasP
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
Avatar
Daireaux Jean-Baptiste
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.