Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

Répondre

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
soixante treize moins quarantequatre
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Retour

Résumé de la discussion (messages les plus récents en premier)

Barbichu
10-05-2009 15:48:56

Salut,
je n'avais pas vu non plus ce topic.
Lorsqu'on fait

 a = b

, on dit à python que b désigne le même objet que celui que désigne a.
Donc si on modifie b, on modifie a, quelque soit l'objet, (y compris les entiers et les strings, cf [*]).

Si on regarde l'exemple de yoshi, quand il affecte une nouvelle valeur à une variable, il crée en fait un nouvel objet (le membre droit de l'affectaction), et demande à la variable d'y réferer. Par contre, si dans son exemple sur les chaines de caractères, yoshi avait modifié la variable ch1 au lieu de la réaffecter, ch2 aurait aussi changé, ... [*] sauf qu'en python on ne peut changer la valeur d'un int, ou d'une string.

++

yoshi
01-03-2009 16:41:01

Re,

C'est probablement lié aux listes (et aux listes de listes) :
1. Ca ne se produit pas avec des nombres

>>> a=2
>>> b=a
>>> print a,b
2 2
>>> a=3
>>> print a,b
3 2

2. Ca ne produit pas avec des chaînes :

>>> ch1="Bonjour !"
>>> ch2=ch1
>>> print ch1,ch2
Bonjour !  Bonjour !
>>> ch1="Bonsoir !"
>>> print ch1,ch2
Bonsoir !  Bonjour !

Ca se produit également si tu changes L2 au lieu de L1

@+

Lutcho74
01-03-2009 16:28:33

Salut,

A mon avis c'est parce que tu as dit que L2=L1 donc chaque changement que tu donne à une des deux listes affecte également l'autre...j'en suis pas sur à 100% mais je pense que c'est ça.

@+

[EDIT] Oui c'est bien ça je viens de tester pour être sûr et donc voilà c'est sûr...

tibo
01-03-2009 15:57:11

Bonjour,

le plus simple est que je vous montre mon problème

>>> L1=[1,2]
>>> L2=L1
>>> L1
[1, 2]
>>> L2
[1, 2]
>>> L2[0]=2
>>> L1
[2, 2]
>>> L2
[2, 2]
>>>

pourquoi L1 change aussi quand je change L2?

Pied de page des forums