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

Python Discussion :

Compréhension de code [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 621
    Par défaut Compréhension de code
    Bonjour à tous,
    Je débute en Python et j'ai récupéré un bout de code que j'essaie d'analyser mais des choses m'échappent.
    Quelqu'un aurait-il l'amabilité de m'expliquer les lignes ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            while d != 0:
                b = "01"[d&1]+b
                print(b)
                d = d >> 1
            return b
    d est une valeur entière que je veux convertir en binaire.
    Je ne comprend pas en particulier la ligne : " b = "01"[d&1]+b"

    Je vous remercie bien.

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    La valeur entre crochets est l'index du caractère à prendre dans la chaîne qui précède.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    >>> "01"[0]
    '0'
    >>> "01"[1]
    '1'
    Donc dans ton cas [d&1] représente soit un un soit un zéro.
    Ici, il s'agit de la valeur de d and 1 ce qui produit toujours zéro pour un nombre pair ou un pour un nombre impair.

    Je suppose que, avant la boucle, b = "" (chaîne vide) et à chaque itération de la boucle on ajoute un bit binaire à gauche. La valeur de d est ensuite divisée par deux avec d = d >> 1 (décalage d'un bit vers la droite).

    Si ce n'est pas clair, tu le dis.

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

Discussions similaires

  1. compréhension de code en asp
    Par bidule123456 dans le forum ASP
    Réponses: 1
    Dernier message: 21/08/2007, 11h12
  2. compréhension de code (passage à une autre page)
    Par kokokaine dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/05/2007, 11h02
  3. Réponses: 3
    Dernier message: 12/01/2007, 09h42
  4. [VB-Access]recset! Pb de compréhension de code
    Par sk8bcn dans le forum VBA Access
    Réponses: 5
    Dernier message: 15/12/2006, 15h26
  5. Compréhension du code
    Par Ivanelis dans le forum Assembleur
    Réponses: 3
    Dernier message: 12/06/2006, 12h08

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