• Aucun résultat trouvé

Listes, passages de paramètres, et identi ants 1 id

N/A
N/A
Protected

Academic year: 2022

Partager "Listes, passages de paramètres, et identi ants 1 id"

Copied!
5
0
0

Texte intégral

(1)

Listes, passages de paramètres, et identiants 1 id

id(x)est un numéro associé à chaque objet Python.

D'après la documentation ocielle :

This is an integer (or long integer) which is guaranteed

to be unique and constant for this object during its lifetime.

Quelques essais

(2)

from copy import copy x = 1

id(x) y = x id(y) x = 2 id(x) y id(y)

L = [0, 1]

L1 = L

L2 = copy(L) L3 = L[:]

id(L), id(L1), id(L2), id(L3) L is L1

L is L2 L == L1 L == L2 L == L3

# Les listes sont modifiables (mutable) L = [0, 1, 2]

L1 = L id(L) L[0] = 5 id(L) L1

L = [0, 1]

L1 = L x = L[0]

L[0] = 5

x, L1

(3)

2 Une fonction...

def f(x):

...

return ...

f(y)

Que se passe-t-il quand on exécute 'f(y)' ? - Une variable locale xest créée.

-id(x)est initialisé avec la valeur deid(y). Autrement dit,y partage son identiant avecx.

Comme quand on exécute x=y.

Quand l'exécution de la fonction est terminée,xdisparait, pasy évidemment.

3 Et dans ce cas ?

def f(x):

...

return ...

f(x) Réponse

Il y a deux variables qui ont le même nom :

le 'x' local est initialisé avec la valeur de son homonyme.

A l'intérieur de la fonction, 'x' désigne toujours la variable locale.

4 Et dans ce cas ?

def f(x):

global x ...

return ...

Réponse Essayez...

5 Exemples

Exécutez les commandes l'une après l'autre.

Essayez de deviner ce que va répondre Python avant de vérier.

(4)

L = [k**2 for k in range(10)]

L, L[1:4], L[0:-1], L[:-1]

L = [0,1]

L1 = L

id(L) == id(L1) L2 = L[:]

id(L) == id(L2) L[0] = 5

L, L1, L2

L = [0,3]

L1 = [L[0], L[1]]

id(L) == id(L1), L == L1

u = [0,1,2]

v = u

u[0:3] = [3,4,5]

v

u = [0,1,2]

v = u

u = [3,4,5]

v

x = [10,11,12,13]

y = x[:3]

x[0] = 20 y

a = [5, 8]

b = [0, 1, a]

b[2][0] = 6

a[1] = 9

a, b

(5)

# Passage de paramètres def premier_exemple(L, x):

x = 5 L[0] = x

x = 0

L = [x, 1]

premier_exemple(L,x) L, x

def echange(x,y,L):

x,y = y,x

L[0], L[1] = L[1], L[0]

x, y = 2, 5 L = [x,y]

echange(x, y, L) x, y, L

def echange_sournois(x,y,L):

x,y = y,x

L = [L[1], L[0]]

x, y = 2, 5 L = [x,y]

echange_sournois(x, y, L) x, y, L

x, L = 0, [0]

def dernier(x,L):

x = 5 y = x M = L M[0] = y L = [10]

x = 3 return x

u = dernier(x, L)

x, u, L

Références

Documents relatifs

En Python, pour accéder rapidement à une structure de type liste, on peut utiliser les listes : file = [] crée une file vide. file.append(valeur) permet d’enfiler une valeur

% régime permanant et uniforme.. % Calcul de la hauteur conjuguée. 'Courbe de remous après ressaut', 'Courbe conjuguée après ressaut'). % On détermine graphiquement la

Il est important de préciser que la preuve par induc- tion mathématique faible peut ne pas être utilisable dans certains cas, notamment par exemple lorsque la suite définie

Nouvelle estimation de la probabilité de chaque

Cet identifiant peut être simplement utilisé pour une correspondance de chaîne dans un filtre, ou il peut être utilisé dans des systèmes plus sophistiqués pour identifier les

[r]

1 1°) Écrire un programme Python qui permet d’obtenir la liste des cubes des 10 premiers entiers naturels. 2°) Écrire une fonction Python qui prend pour argument un entier

Testez d'abord sur des listes courtes construites avec les méthodes vide et ajoutT. d) Testez ensuite sur des listes longues générées avec la méthode creerAleat. Le