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 :

Suite de chiffres avec espace à convertir en un nombre


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 8
    Par défaut Suite de chiffres avec espace à convertir en un nombre
    Bonjour / bonsoir à tous ,

    Je suis débutant en Python et j'ai un problème stupide auquel je ne trouve pas de solution.

    Voici un bout de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    bin1 = a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3,a4,b4,c4,d4,e4,f4,g4,h4
     
    bin2 = a5,b5,c5,d5,e5,f5,g5,h5,a6,b6,c6,d6,e6,f6,g6,h6,a7,b7,c7,d7,e7,f7,g7,h7,a8,b8,c8,d8,e8,f8,g8,h8

    (a1 , b1 , c1 etc... étant des 0 ou des 1)

    J 'ai donc en sortie , par exemple (avec les espaces) :

    0 0 0 1 0 1 0 0

    1 1 1 0 0 0 0 0

    Néanmoins , j'aimerai que ces nombres binaires soient écrits sous la forme 00010100 et 1110000 sans espaces pour que je puisse les utiliser un peu plus bas dans mon programme pour les reconvertir en décimal (exercice consistant à comparer une adresse ip et un masque de sous réseau pour obtenir une adresse de sous réseau de l'hôte)

    J'ai essayé .replace et .rstrip mais message d'erreur.

    Merci beaucoup de votre aide et du temps accordé.

  2. #2
    Membre très actif

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Billets dans le blog
    1
    Par défaut
    Salut.

    Cela se fait avec str.join, instruction de base du langage.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sbin = ''.join(str(b) for b in bin1)
    print(sbin)
    Mais tu dois avoir un gros problème de conception pour avoir défini autant de variables.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 8
    Par défaut
    Merci beaucoup de ton aide,

    je travaille sur un programme qui consiste à comparer chaque nombre du nombre binaire d'une adresse ip avec celui du masque de sous réseau pour obtenir une adresse de sous-réseau de l'hôte ,

    je n'ai pas trouvé de meilleures solutions avec mes capacités actuelles ...

    Merci beaucoup de ton aide en tout cas

  4. #4
    Membre très actif

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Billets dans le blog
    1
    Par défaut
    Ce n'est pas trop ma tasse de thé les concepts réseaux, mais admettons une adresse ip sour forme de chaîne que tu dois convertir en binaires, il faudrait convertir tes adresses en 4 octets, et comparer les bits de chaque adresses pour déterminer le masque.

    Je serais parti d'un truc comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> ip = '128.254.10.52'
    >>> octets = ['{:08b}'.format(int(b)) for b in ip.split('.')]
    >>> octets
    ['10000000', '11111110', '00001010', '00110100']
    Bon après il y a plus simple en utilisant le type int et les opérateurs de bits.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 8
    Par défaut
    Très intéressant ...

    Je pense en effet que je peux radicalement simplifier mon programme avec ça !

    Merci beaucoup

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

Discussions similaires

  1. problème avec / , chiffre et espace
    Par Tee shot dans le forum Langage
    Réponses: 5
    Dernier message: 04/06/2007, 10h27
  2. Convertir une string avec espace en Single
    Par shirya dans le forum C#
    Réponses: 24
    Dernier message: 23/03/2007, 09h20
  3. Afficher un chiffre avec des espaces
    Par Meewix dans le forum Langage
    Réponses: 4
    Dernier message: 08/11/2006, 19h11
  4. Convertir un chiffre avec virgul en nombe entier
    Par delavega dans le forum ASP
    Réponses: 1
    Dernier message: 03/10/2006, 11h32
  5. Chiffres au format francais avec espace
    Par catoucat dans le forum Access
    Réponses: 3
    Dernier message: 14/06/2006, 09h18

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