IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation multimédia/Jeux Python Discussion :

mais pourquoi python est t'il si méchant ?


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2010
    Messages : 22
    Par défaut mais pourquoi python est t'il si méchant ?
    Bonjour,

    tout nouveau pythonien, j'apprends avec un plaisir non dissimulé ce langage, je suis tout nouveau en programmation et même si j'ai suivi des cours de prog avancé de java il y a manifestement quelque chose que je n'ai pas compris vous allez voir c'est tout bête

    ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    a,b,c=1,1,1 
    while c < 10 :
             print a
             a,b,c = b,a+b,c+1
    me donne le résultat suivant : 1 1 2 3 5 8 13 21 34

    et celui la (censé être le même) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    a,b,c=1,1,1 
    while c < 10 :
             print a
             a=b
             b=a+b
             c=c+1
    me donne : 1 1 2 4 8 16 32 64 128

    car si a,b,c = b,a+b,c+1 n'est pas pareil que :
    a=b
    b=a+b
    c=c+1


    c'est égal à quoi alors ?

    merci BEAUCOUP

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2008
    Messages : 76
    Par défaut
    Salut !

    En fait, ce n'est pas tout à fait la même chose, bien que ça semble le cas. ^^

    Pour comprendre ce qui se passe, imagine que tu souhaites intervertir deux variables a et b. Si tu veux faire ça "normalement" tu écrirais quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    a = 2
    b = 4
    tempo = a
    a = b
    b = tempo
    Tu dois utiliser une variable supplémentaire pour éviter d'écraser la valeur de a quand tu attribues la valeur de b (sans cette variable, a et b vaudrait la même chose). Mais ça, tu le sais déjà je suppose

    Avec la syntaxe a, b = b, a python crée lui-même une variable temporaire pour faire l'échange et hop, magie, les valeurs s'intervertissent.

    Aussi, les deux codes que tu proposes ne font pas exactement la même chose. Celui avec la syntaxe d'assignation en parallèle va à chaque fois affecter à b la valeur de b et la valeur de a AVANT qu'elle ne change.

    Dans le premier cas que tu proposes, on a la progression suivante :

    a = 1, b = 2, c = 2
    a = 2, b = 4, c = 3
    a = 4 ...

    Et dans le deuxième cas :

    a = 1, b = 2, c = 2
    a = 2, b = 3, c = 3
    a = 3, ...

    En espérant être clair ^^

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2010
    Messages : 22
    Par défaut
    hhhhaaaaaaaaaaaaaaaaaaa je voiiiisssss, dans un .PDF je lisais justement que quand on écrivait a,b = b,a les valeurs s'échangeaient mais dans ma tête quand on écrit :

    a,b,c = b,a+b,c+1

    a vaut b
    b vaut la somme de a+b
    ...

    mais en fait la variable a est échangée avec la variable b, erreur de débutant c'était trop simple je un gros naze

    en tout cas merci pour ta réponse claire et rapide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Syntaxe POO, mais pourquoi est il aussi méchant ?
    Par shaiHulud dans le forum MATLAB
    Réponses: 0
    Dernier message: 07/11/2013, 10h30
  2. pourquoi Python est-il en vogue ?
    Par Chatbour dans le forum Langages de programmation
    Réponses: 21
    Dernier message: 18/12/2009, 13h06
  3. Réponses: 1
    Dernier message: 14/10/2009, 12h47
  4. [JSTL] Mais pourquoi est-il si méchant ?
    Par thierryler dans le forum Taglibs
    Réponses: 4
    Dernier message: 03/03/2008, 17h19
  5. Réponses: 4
    Dernier message: 28/03/2006, 22h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo