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 :

Extraction d'un integer d'un string


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2013
    Messages : 68
    Points : 35
    Points
    35
    Par défaut Extraction d'un integer d'un string
    Bonjour,
    j'aimerais bien savoir comment extraire une sous chaîne de caractères d'une autre chaîne
    voila ma chaine PAVA 4.54.0466E-9 S,OK\n
    je veux extraire la valeur 4.540466E-9
    Merci d'avance pour vos réponses.

  2. #2
    Membre averti
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Points : 301
    Points
    301
    Par défaut
    Bonjour,

    si ta chaîne est fixe, tu peux simplement faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chaine = "PAVA 4.54.0466E-9 S,OK\n"
    sousChaine = chaine[5:17]
    "sousChaine" vaut alors la partie "chaine" comprise entre les caractères 5 à 17.

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

    Et si vous n'aimez pas compter les caractères, vous pouvez dire "le chiffre que je veux est entre les deux premiers "blancs" qui séparent les éléments de la chaîne" et découper la chaîne en fonction des "blancs":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> s = 'PAVA 4.540466E-9 S,OK\n'
    >>> s.split()
    ['PAVA', '4.540466E-9', 'S,OK']
    les éléments de la chaîne sont alors dans une liste et on peut s'amuser à convertir l'élément intéressant en "float":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> float(s.split()[1])
    4.540466e-09
    Mais toutes ces opérations sur les chaînes de caractères et leur conversion en float ou en int sont ce que vous apprendriez dans n'importe quel tuto sur Python.

    - W

  4. #4
    Membre averti
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Points : 301
    Points
    301
    Par défaut
    En effet wiztricks ta solution est mieux!
    Et effectivement une petite recherche sur le net t'aurais rapidement apporté la solution...

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2013
    Messages : 68
    Points : 35
    Points
    35
    Par défaut
    Bonjour,
    Merci pour vos réponses
    Mokochan ma chaîne n'est pas fixe
    wiztricks pour votre solution le compilateur affiche l'erreur suivante invalid literal for float(): 4.539932E-9

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 351
    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 351
    Points : 36 875
    Points
    36 875
    Par défaut
    Citation Envoyé par mokochan Voir le message
    En effet wiztricks ta solution est mieux!
    Et effectivement une petite recherche sur le net t'aurais rapidement apporté la solution...
    Elle n'est pas "mieux".
    Elle est juste là pour dire qu'il y a différentes approches pour construire une solution.
    Les plus simples se réalisent avec ce qu'on peut apprendre dans les premiers chapitres de n'importe quel bon tuto et améliorer en s'exerçant à la console Python.
    Le temps passé à attendre une réponse ou à chercher sur Internet serait mieux employé à pianoter sur la console et à relire le tuto.

    - W

  7. #7
    Membre averti
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Points : 301
    Points
    301
    Par défaut
    Pour ma part quand je teste la solution de wiztricks ça fonctionne très bien, mets le code que tu as utilisé exactement si tu veux qu'un t'aide car avec le seul message d'erreur on ne pourra pas!
    Et si ta chaîne n'est pas fixe, donne-nous les différentes valeurs qu'elle peut avoir.

    Les plus simples se réalisent avec ce qu'on peut apprendre dans les premiers chapitres de n'importe quel bon tuto et améliorer en s'exerçant à la console Python.
    Le temps passé à attendre une réponse ou à chercher sur Internet serait mieux employé à pianoter sur la console et à relire le tuto.
    +1

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 351
    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 351
    Points : 36 875
    Points
    36 875
    Par défaut
    Citation Envoyé par KTARIK Voir le message
    wiztricks pour votre solution le compilateur affiche l'erreur suivante invalid literal for float(): 4.539932E-9
    Montrez ce que vous faites, genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> float('4.539932E-9')
    4.539932e-09
    >>>
    N'oubliez pas que la machine fera ce qu'elle peut avec les données que vous lui avez fourni.

    - W

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2013
    Messages : 68
    Points : 35
    Points
    35
    Par défaut
    voila le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    periode1=ws.msg("PAVA? CUST4") # la réponse de ce message est la suivante 'PAVA 4,54.072E-9 S,OK\n'
    m=periode1.split()
    T1=m[1]#cette ligne retourne un string de valeur '4,54.072E-9'
    Le problème que j'arrive pas à transformer ce string en float :/

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par KTARIK Voir le message
    voila le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    periode1=ws.msg("PAVA? CUST4") # la réponse de ce message est la suivante 'PAVA 4,54.072E-9 S,OK\n'
    m=periode1.split()
    T1=m[1]#cette ligne retourne un string de valeur '4,54.072E-9'
    Le problème que j'arrive pas à transformer ce string en float :/
    Bonjour,

    Vous n'avez pas 1 mais 2 nombres séparés par une virgule => 4 et 54.072E-9

    Vous pourriez donc faire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    periode1 = ws.msg("PAVA? CUST4") # la réponse de ce message est la suivante 'PAVA 4,54.072E-9 S,OK\n'
    m = periode1.replace(",", " ").split()
    T1 = float(m[2]) # devrait obtenir le float 54.072E-9 recherché
    @+.

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 351
    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 351
    Points : 36 875
    Points
    36 875
    Par défaut
    Wouah!
    "PAVA? CUST4" <=> "PArameter VAlue query for custom parameter 4"
    Avec un langage qu'on ne maîtrise pas pour parler à un robot qui n'en fait qu'à sa tête: çà craind.

    Est-ce le "boss" n'a pas voulu vous payer quelques jours de formation?
    Peut-être que vous vous êtes retrouvé la dedans après avoir traîné à la machine à café avec un tuto. sur Python?

    Pourquoi ne pas envisager l'embauche d'un professionnel?
    Ce serait plus raisonnable (et nous avons plein de chômeurs qualifiés).

    - W

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2013
    Messages : 68
    Points : 35
    Points
    35
    Par défaut
    Je viens de commencer mon stage et j'ai aucune idée sur le langage python déjà je suis entrain de lire des tuto la dessus :p
    Merci en tout cas pour vos réponses.

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

Discussions similaires

  1. detection de double ou integer dans un string
    Par membreComplexe12 dans le forum C++
    Réponses: 15
    Dernier message: 13/07/2011, 12h57
  2. Cast Integer/Long to String
    Par neolitec dans le forum JSF
    Réponses: 7
    Dernier message: 07/06/2010, 13h49
  3. Réponses: 2
    Dernier message: 10/06/2006, 13h46
  4. Réponses: 6
    Dernier message: 21/01/2004, 13h25
  5. Concaténation de String et Integer
    Par Ingham dans le forum Langage
    Réponses: 5
    Dernier message: 21/01/2003, 17h26

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