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 :

Probleme conversion variable en binaire


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Passionné
    Inscrit en
    Décembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Décembre 2016
    Messages : 4
    Par défaut Probleme conversion variable en binaire
    Bonjour à tous,
    Débutant sur python, j'ai besoin de convertir en binaire une variable mais je n'y arrive pas...
    En utilisant le code suivant, si je saisis moi meme un nombre a convertir, je l'obtiens bien donc la fonction est correcte. Par contre, si je lui demande de convertir un nombre recuperer dans une variable, j'obtiens une erreur que je n'arrive pas à résoudre...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    q = n // 2
    TypeError: unsupported operand type(s) for //: 'list' and 'int'
    Mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    # Déclaration:
    Alarme_Z1_Z2 = 0
     
    # Récupération de la valeur de ma variable:
    	i2c.open(PCA8574A_Alarme_Z1_Z2) #The slave device address is 0x71
    	Alarme_Z1_Z2 = i2c.read(Nombre_Octets_A_Recevoir_Pcb_Alarme)
    	i2c.close() #End communication with slave device
     
    	global Alarme_Z1_Z2
     
    	x = bin(Alarme_Z1_Z2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    # Conversion binaire:
    def bin(n): 
    	"""Convertit un nombre en binaire""" 
    	q = -1 
    	res = '' 
    	while q != 0: 
    		q = n // 2 
    		r = n % 2 
    		res = `r` + res 
    		n = q 
    	return res
    Pouvez vous m'aider, me conseiller ou me donner des idées, ca fait 2 jours que j'essaye en vain.
    Merci d'avance

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 700
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TypeError: unsupported operand type(s) for //: 'list' and 'int'
    Le message d'erreur est pourtant clair, il dit que vous passez une liste à votre fonction "bin"... Et donc que i2c.read retourne cette liste dans la variable Alarme_Z1_Z2 (ce que vous pouvez vérifier avec un "print").
    notez que Python dispose déjà les fonctions "bin" et format(n, 'b') pour fabriquer la représentation binaire d'un entier.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Candidat au Club
    Homme Profil pro
    Passionné
    Inscrit en
    Décembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Décembre 2016
    Messages : 4
    Par défaut
    bjr et merci pour votre réponse,
    par la suite, j'ai bien compris que c’était une liste mais il me met toujours la même erreur si je déclare ma variable
    Alarme_Z1_Z2 = 0
    Comment dois je déclarer ma variable ?
    Merci d'avance

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 700
    Par défaut
    Citation Envoyé par ArnaudF09 Voir le message
    par la suite, j'ai bien compris que c’était une liste mais il me met toujours la même erreur si je déclare ma variable
    Alarme_Z1_Z2 = 0
    Comment dois je déclarer ma variable ?
    hu? Vous programmez en Python là. Les variables ne se déclarent pas, elles sont créées et mises en jour lorsqu'on leur assigne un objet.
    Si vous écrivez A = 0, vous pourrez écrire A = list() plus tard sans qu'il se fache.
    Pensez variable comme association d'une chaîne de caractère (l'identifiant) à un objet ou comme clé/valeur dans un dict: "clé est l'identifiant de la variable et "valeur" l'objet associé à cette clé.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Candidat au Club
    Homme Profil pro
    Passionné
    Inscrit en
    Décembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Décembre 2016
    Messages : 4
    Par défaut
    Alors, comment faire pour récupérer la valeur en binaire d'une variable reçue par un i2c.read ???

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 700
    Par défaut
    Citation Envoyé par ArnaudF09 Voir le message
    Alors, comment faire pour récupérer la valeur en binaire d'une variable reçue par un i2c.read ???
    i2c.read retourne un objet.
    Si cet objet est une liste, sa valeur "binaire" n'a pas trop de sens.
    Et donc vous en êtes réduit à faire un "print" de cette liste pour voir ce qu'elle contient (et imaginer ce qu'on peut en faire).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Candidat au Club
    Homme Profil pro
    Passionné
    Inscrit en
    Décembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Décembre 2016
    Messages : 4
    Par défaut
    en fait, le resultat de I2C.read provient d'un PCA8574A qui me donne des 0 ou des 1 suivant l'etat de ses broches. Afin de detecter quel est le bit qui vient d'etre modifier, j'ai besoin de faire une operation binaire via un masque... Mais comme j'arrive pas a recuperer la valeur en binaire, je suis bloqué... N'auriez vous pas une idée de la maniere a proceder ???
    Merci d'avance

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 700
    Par défaut
    Citation Envoyé par ArnaudF09 Voir le message
    N'auriez vous pas une idée de la maniere a proceder ???
    "print" de la chose retournée... pour voir à quoi çà ressemble.
    (çà ne fera que la 3ème fois que je vous le répète).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 6
    Dernier message: 16/11/2010, 18h28
  2. Probleme conversion fichier binaire.
    Par L4BiN dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 22/09/2009, 10h42
  3. Réponses: 6
    Dernier message: 14/03/2007, 14h36
  4. probleme conversion decimal to binaire
    Par aimad41 dans le forum C
    Réponses: 3
    Dernier message: 14/12/2006, 09h45
  5. Réponses: 2
    Dernier message: 04/01/2004, 15h14

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