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

Réseau/Web Python Discussion :

Comment puis-je convertir un string en int


Sujet :

Réseau/Web Python

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut Comment puis-je convertir un string en int
    Bonjour à tous

    D'habitude je code en C++ pour envoyer des données sur un passerelle avec la technoligie LoRaWAN.
    Pour une petite application indispensable, j'utilise un Raspbery avec Python3.

    Le code est relativement simple

    Code python3 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
     
        """
        Example for using the RFM9x Radio with Raspberry Pi and LoRaWAN
         
        Learn Guide: https://learn.adafruit.com/lora-and-lorawan-for-raspberry-pi
        Author: Brent Rubell for Adafruit Industries
        """
        import threading
        import time
        import subprocess
        import busio
        from digitalio import DigitalInOut, Direction, Pull
        import board
        # Import thte SSD1306 module.
        import adafruit_ssd1306
        # Import Adafruit TinyLoRa
        from adafruit_tinylora.adafruit_tinylora import TTN, TinyLoRa
     
        # Button A
        btnA = DigitalInOut(board.D5)
        btnA.direction = Direction.INPUT
        btnA.pull = Pull.UP
     
        # Button B
        btnB = DigitalInOut(board.D6)
        btnB.direction = Direction.INPUT
        btnB.pull = Pull.UP
     
        # Button C
        btnC = DigitalInOut(board.D12)
        btnC.direction = Direction.INPUT
        btnC.pull = Pull.UP
     
        # Create the I2C interface.
        i2c = busio.I2C(board.SCL, board.SDA)
     
        # 128x32 OLED Display
        display = adafruit_ssd1306.SSD1306_I2C(128, 32, i2c, addr=0x3c)
        # Clear the display.
        display.fill(0)
        display.show()
        width = display.width
        height = display.height
     
        # TinyLoRa Configuration
        spi = busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO)
        cs = DigitalInOut(board.CE1)
        irq = DigitalInOut(board.D22)
        # TTN Device Address, 4 Bytes, MSB
        devaddr = bytearray([0x00, 0x00, 0x00, 0x00])
        # TTN Network Key, 16 Bytes, MSB
        nwkey = bytearray([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                           0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
        # TTN Application Key, 16 Bytess, MSB
        app = bytearray([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
        # Initialize ThingsNetwork configuration
        ttn_config = TTN(devaddr, nwkey, app, country='US')
        # Initialize lora object
        lora = TinyLoRa(spi, cs, irq, ttn_config)
        # 2b array to store sensor data
        data_pkt = bytearray(2)
        # time to delay periodic packet sends (in seconds)
        data_pkt_delay = 5.0
     
     
        def send_pi_data_periodic():
            threading.Timer(data_pkt_delay, send_pi_data_periodic).start()
            print("Sending periodic data...")
            send_pi_data(CPU)
            print('CPU:', CPU)
     
        def send_pi_data(data):
            # Encode float as int
            data = int(data * 100)
            # Encode payload as bytes
            data_pkt[0] = (data >> 8) & 0xff
            data_pkt[1] = data & 0xff
            # Send data packet
            lora.send_data(data_pkt, len(data_pkt), lora.frame_counter)
            lora.frame_counter += 1
            display.fill(0)
            display.text('Sent Data to TTN!', 15, 15, 1)
            print('Data sent!')
            display.show()
            time.sleep(0.5)
     
        periodic = True
        while periodic:
            packet = None
            # draw a box to clear the image
            display.fill(0)
            display.text('RasPi LoRaWAN', 35, 0, 1)
     
            # read the raspberry pi cpu load
            cmd = "top -bn1 | grep load | awk '{printf \"%.1f\", $(NF-2)}'"
            CPU = subprocess.check_output(cmd, shell = True )
            CPU = float(CPU)
     
     
            display.fill(0)
            display.text('* Periodic Mode *', 15, 0, 1)
            display.show()
            time.sleep(0.5)
            if periodic== True
                send_pi_data_periodic()
                periodic=False 
     
            display.show()
            time.sleep(.1)

    Toutes les 5 mionutes, il envoye la valeur du CPU.

    Je dois encoyer trois valeru sous cette forme

    ba:3,la:46.2014,lo:4.01324
    Donc au niveau de la function end_pi_data_periodic(), j'ai commencé à essayer de faire ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        def send_pi_data_periodic():
            threading.Timer(data_pkt_delay, send_pi_data_periodic).start()
            print("Sending periodic data...")
            send_pi_data("ba:3")
    ce qui me génère une erreur
    Sending periodic data...
    Traceback (most recent call last):
    File "radio_lorawan.py", line 175, in <module>
    send_pi_data_periodic()
    File "radio_lorawan.py", line 79, in send_pi_data_periodic
    send_pi_data("ba:3")
    File "radio_lorawan.py", line 84, in send_pi_data
    data = int(data * 100)
    ValueError: invalid literal for int() with base 10: 'ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:3ba:
    ^CException ignored in: <module 'threading' from '/usr/lib/python3.5/threading.py'>
    Sauf erreur, ca ddoit etre une erreur de conversion.

    Etant donnée que mon code en C++ envoye les donnée en uint_8
    En python3 comment pourrais convertir
    ba:3,la:46.2014,lo:4.01324
    en uint_8 (ou int si ca fait la meme chose), pour envoyer ces valeurs?


    Milles mercis pour vos lumières
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Relisez votre code, la fonction send_pi_data:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def send_pi_data(data):
            # Encode float as int
            data = int(data * 100)
    attend un float... Et s'il n'est pas interdit de passer une chaine de caractères à int encore faut-il que çà ressemble à une suite de nombres... Or "ba:3" répété 100 fois n'est ni une suite de nombre, ni un float.


    En python3 comment pourrais convertir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ba:3,la:46.2014,lo:4.01324
    en uint_8 (ou int si ca fait la meme chose), pour envoyer ces valeurs?
    En encodant... l'unicode en bytes (qui sont des sortes d'uint_8)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> "ba:3,la:46.2014,lo:4.01324".encode()
    b'ba:3,la:46.2014,lo:4.01324'
    >>>
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Salut wiztricks

    Merci pour ta réponse, mais j'excuse mais j'ai oas tout compris.

    Relisez votre code, la fonction send_pi_data:
    D'accord, en fait c'est déjà en int

    Par contre, j'ai pas compris le deuxième commentaire, du moins la syntaxe

    J'ai essayé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    data = b'ba:3'
    send_pi_data(data)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    data = "b'ba:3,la:46.0334,lo:4.2837'"
    send_pi_data(data)
    dans les deux cas ca m'affiche la meme erreur
    Sending periodic data...
    Traceback (most recent call last):
    File "radio_lorawan.py", line 174, in <module>
    send_pi_data_periodic()
    File "radio_lorawan.py", line 78, in send_pi_data_periodic
    send_pi_data(data)
    File "radio_lorawan.py", line 83, in send_pi_data
    data = int(data * 100)
    ValueError: invalid literal for int() with base 10: b'ba:2,la:46.3234,lo:4.1234ba:2,la:46.3234,lo:4.1234ba:2,la:46.3234,lo:4.1234ba:2,la:46.3234,lo:4.1234ba:2,la:46.3234,lo:4.1234ba:2,la:46.3234,lo:4.1234ba:2,la:46.3234,lo:4.1234ba:2,la:46.3234,lo:4.12
    qu'est-ce qu'il "multiplie" les ba:2,la:46.3234,lo:4.1234?
    Je pense que je bug sur la syntaxe, non?

    devrais-je mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data = int(data * 100).encode()
    ?
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par pierrot10 Voir le message
    D'accord, en fait c'est déjà en int
    Si c'était un int, on aurait pas la chaine de caractères b'ba:2,la:46.3234,... dans le message d'erreur.

    Citation Envoyé par pierrot10 Voir le message
    Je pense que je bug sur la syntaxe, non?
    Si votre code qui fonctionne (à priori) correctement lorsque CPU est un float... et
    que vous vous contentez de remplacer ce float par une chaine de caractère, c'est pas un problème de syntaxe mais de compréhension.

    Lancez la console Python et essayez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> data_pkt = bytearray(2)
    >>> def send_pi_data(data):
    ...     # Encode float as int
    ...     data = int(data * 100)
    ...     # Encode payload as bytes
    ...     data_pkt[0] = (data >> 8) & 0xff
    ...     data_pkt[1] = data & 0xff
    ...     print (data_pkt)
    ...
    Si je mets un float dans le tuyau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> send_pi_data(10.2)
    bytearray(b'\x03\xfb')
    j'obtiens des bytes...
    SI on pousse une chaine de caractères qui n'est pas une suite de nombres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> send_pi_data('ab')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "<stdin>", line 3, in send_pi_data
    ValueError: invalid literal for int() with base 10: 'abababababababababababababa
    babababababababababababababababababababababababababababababababababababababababa
    babababababababababababababababababababababababababababababababababababababababa
    babababababa
    >>>
    çà plante... normal.
    Donc il va falloir que vous preniez le temps de comprendre ce que vous voulez faire et comment le coder pour que çà le fasse en vous inspirant ou pas du code que vous avez déjà.

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

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Bonjour wiztricks

    Oui je comprends bien.

    Dans mon exemple, CPU est un float et l'exemple envoi valeur par valeur.
    Je pense que j'ai été mal adroit dans mes commentaires.

    Je ne peux pas envoyer valeur par valeur, je dois envoyer toutes mes valeurs d'un coup et comme vous l'avez compris je dois envoyer ceci

    ba:3,la:46.2014,lo:4.01324
    Dans mon code fait en C++, j'ai une variable

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    uint8_t payload[51];
    et c'est le contenu de cette variable que j'envoie.

    Dans l'application en C++, je mesure une dizaine de valeurs, généralement des floats que je converti en uint_16 et ce que je dois faire en python, et je n'arrive pas faire.

    Par exemple, je mesure l'état de la batterie et sa valeur (float measuredvbat) je la sauve dans un uint_16
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    mesMesures[c_battery][capteur_battery_id].valeur = (int16_t)measuredvbat;

    Puis une fois toutes les mesures prises, je les empiles dans payload

    (J'avais été aidé pour cette partie)
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
     
        uint8_t payload[payloadSize];
        memset(payload,'\0',payloadSize);
        uint8_t * ptr = payload;
     
        for(byte i = 0; i < nbMaxCapteurs; i++)
        {
          if (mesCapteur[i].actif)
          {   
            *ptr = mesCapteur[i].codeDuCapteur;
            ptr += strlen((char *) ptr);
            itoa(mesMesures[i][mesCapteur[i].idDuCapteur].valeur, (char *) ptr, 10); // We wrote to ptr the representation ASCII in base 10 the value of a sensor
            ptr += strlen((char *) ptr);
     
            if (i < nbMaxCapteurs-1)
            {
              // Comment for ligth version
              /*
              *ptr = ',';           
              ptr += sizeof(char);    // move right
              */
     
            }
            else
            {
              //*ptr = ',' ;              // Add a last ,
              //ptr += sizeof(char);
            }
          }
          else
          {
            // Comment for ligth version
            /*
            if (i < nbMaxCapteurs-1)
            {
              *ptr = ','; // virgule
              ptr += sizeof(char);
            }
            else
            {
              *ptr = ',';             // Add a last ,
              ptr += sizeof(char);
            }
            */    
          }
        } // End for
     
        *ptr = 0; // Close
        int pl = strlen((char*)payload);
        Si.sprint(F("Payload len: "),2); Si.sprintln(pl,2);
        int ps = sizeof(payload);
        Si.sprint(F("Payload size: "),2); Si.sprintln(ps,2);

    Ci-dessus, 'codeDuCapteur' affiche "ba", "te", "hu", etc

    Aussi, mon payload aura une valeur équivalente à ceci, si c'était une chaine de caractere:
    ba:3,hu:300,lu:1234,te:26
    (je n'écris pas toute mes valuers)

    Le serveur distant, ca savoir que la batterie (ba) a une valeur de 3, la température (te) une valeur de 26, l'humidité (hu) une valeur de 300, etc.

    Pour que mon serveur puisse interpréter les valeurs envoyé par mon raspberry, il faudrait que Python fasse la meme chose.

    Je réalise que ma problématique est plus importante que je croyais. Je crois faire ca en 5mn

    Dans l'exemple que je mentionne, en python, il faudrait , et c'est que je ne sais pas faire en Python, du moins si je pouvais convertir du C++ en Python, ca serait génial ,il faudrait que la valeur
    de la batterie (ba) la lattitude (la) et la ongitude (lo), soit envoyé, et convertit sous forme de uint8_t, mais il faudrait que ba, la, lo soit aussi en uint_8

    Donc la problématique est de convertir
    ba:3,hu:300,lu:1234,te:26
    en
    62613a332c68753a3330302c6c753a313233342c74653a3236
    sachant que le 3a est égal à ':', 2c à ','

    dans la fonction
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    def send_pi_data(data):
    data aura la valeur de

    62613a332c68753a3330302c6c753a313233342c74653a3236
    Est-ce que j'ai été "plus adroit" dans mon explication?
    M'aideriez-vous à adapter ce code? Ca me serait fort utile car lundi, je devrait aller sur le terrain pour mesurer le RSSI (Received Signal Strength Indication) à divers endroit, en envoyant au serveur juste la valeur de la batterie (et plus tard, la position). Mes stations n'envoient plus rien. Avec le raspberry, il me suffira de me déplacer dans le verger et envoyer une mesure. Le serveur mesures le RSSI chaque envoi et c'est cette valeur que je dois absolument récolter.

    Milles mercis et désolé pour mes confusion!!
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  6. #6
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Pour apporter plus de précision, et j'aurais de le faire avant, la technolige que j'utilise est LoRaWAN et mes données sont envoyées chez The Things Network
    https://www.thethingsnetwork.org/
    et le payload format que va "me traduire" mes valurs est ainsi
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    function Decoder(bytes, port) {
      var str=String.fromCharCode.apply(null,bytes);
      var astr = str.split(",");
     
      var regex = /([a-z]+)(\d+)/g;
     
      //var resultats = [];
    	var paire;
     
      var decoded = {}
      var te,pr,hu,lu,w1,w2,w3,da,ts,ga,ba,ar,an,it,wr;
      while (null !== (paire = regex.exec(astr[0]))) {
    		//console.log(paire[1]);
    		switch(paire[1]){
    		  case 'a':
    		    //console.log("te",paire[2]);
    		    te=paire[2];
    		    break;
    		  case 'b':
    		    //console.log("pr",paire[2]);
    		    pr=paire[2];
    		    break;
    		  case 'c':
    		    //console.log("hu",paire[2]);
    		    hu=paire[2];
    		    break;
    		  case 'd':
    		    //console.log("lu",paire[2]);
    		    lu=paire[2];
    		    break;
    		  case 'e':
    		    //console.log("w1",paire[2]);
    		    w1=paire[2];
    		    break;
    		  case 'f':
    		    //console.log("w2",paire[2]);
    		    w2=paire[2];
    		    break;
    		  case 'g':
    		    //console.log("w3",paire[2]);
    		    w3=paire[2];
    		    break;
    		  case 'h':
    		    //console.log("da",paire[2]);
    		    da=paire[2];
    		    break;
    		  case 'i':
    		    //console.log("ts",paire[2]);
    		    ts=paire[2];
    		    break;
    		  case 'j':
    		    //console.log("ga",paire[2]);
    		    ga=paire[2];
    		    break;
    		  case 'k':
    		    //console.log("ba",paire[2]);
    		    ba=paire[2];
    		    break;
    		  case 'l':
    		   // console.log("ar",paire[2]);
    		    ar=paire[2];
    		    break;
    		  case 'm':
    		   // console.log("an",paire[2]);
    		    an=paire[2];
    		    break;
    		  case 'n':
    		    //console.log("it",paire[2]);
    		    it=paire[2];
    		    break;
    		  case 'o':
    		    //console.log("wr",paire[2]);
    		    wr=paire[2];
    		    break;
     
    		}
    		//resultats.push(paire);
    	}
     
      return {
        te:te,
        pr:pr,
        hu:hu,
        lu:lu,
        w1:w1,
        w2:w2,
        w3:w3,
        da:da,
        ts:ts,
        ga:ga,
        ba:ba,
        ar:ar,
        an:an,
        it:it,
        wr:wr,
      }
     
    }

    Mais je peux aussi créer une nouvelle application chez TTN pour avoir un payload format spécifique pour mon application, si c'est plus simple.

    Voilà, j'espère ne pas trop avoir charger ma requete en espérant pouvoir ceci au plus simple.
    Je peux assi me contenter que d'envoyer la valeur de la batterie, même si elle est statique, car l'importance est d'envoyer un message pour avoir la valeur du RSSI et qu'elle soit sauvée dans une base de donnée, mais ca c'est pas compliqué, du moment ou l'envoi se fait sans erreur

    Merci, merci, merci

    NB: dans le payload format, ci-dessus, il n'y a pas encore la partie pour 'la' et 'lo'
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  7. #7
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Oups, je m'apperçois avor fait une ennorme gourde,ce n'est pas
    ba:3,hu:300,lu:1234,te:26
    que jedois envoyer mais
    k:3,c:300,e:1234,a:26
    Chaque lettre de l'alphabet, identifie une mesure.
    (avant j'utilisais deux lettres, mais maintenant j'utilise les lettres de l'alphabet pour diminuer la taille de la variable vu qu'on est limité à 50 bytes.
    MINCE.

    Mais restons sur
    ba:3,hu:300,lu:1234,te:26
    je serait corriger le tir du moment ou je sais comment faire
    Désolé
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Je vous ai déjà donné la réponse à votre question initiale: passer d'un string en bytes se fait via .encode(...).

    Pour le reste, c'est à vous de le programmer.

    note: expédier une suite de bytes à ... suppose connaître le protocole utilisé pour s'assurer qu'on ne fait pas n'importe quoi et disposer d'une configuration pour tester.

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

Discussions similaires

  1. [C#] Convertir une String en Int ?
    Par Kylen dans le forum ASP.NET
    Réponses: 12
    Dernier message: 11/04/2012, 10h59
  2. Convertir un string en int
    Par m.borghesi dans le forum Langage
    Réponses: 5
    Dernier message: 03/11/2010, 15h02
  3. Comment convertir un String en int[]
    Par mundu dans le forum Langage
    Réponses: 3
    Dernier message: 20/01/2009, 00h12
  4. Convertir un String en Int
    Par Gr@nd@x dans le forum Langage
    Réponses: 4
    Dernier message: 03/04/2007, 22h40
  5. convertir un String en int
    Par Sakapatate dans le forum Langage
    Réponses: 4
    Dernier message: 07/12/2006, 14h29

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