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 :

cconvertir un string en int python


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 24
    Par défaut cconvertir un string en int python
    bonjour à tous,
    jai un probleme au niveau de mon code, enfaite j'ai un fichier csv avec des noms de pays, nombre d'habitants/années...etc. Je souhaiterais afficher le nombre d'habitant/années pour chaque pays sous forme d'une liste mais jai rencontré une erreur de python. la coversion marche bien mais quand le programme rencontre un chiffre (nombre d'habitant) avec un virgule il me genere une erreur et sarrete automatiquement je ne sais pas comment coriger cela]...pourriez vous m'aider svp parce que cela m'empeche d'avancer sur mon programme ou m'expliquer ou se trouve mon erreur? je vous remercie par avance

    Nom : 1.png
Affichages : 6197
Taille : 45,7 Ko
    [ATTACH=CONFIG]339231[/ATTACH
    Images attachées Images attachées  

  2. #2
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 347
    Par défaut
    Bonjour,

    Tout simplement parce qu'un float n'est pas un int.

  3. #3
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    On peut reproduire cette erreur via l'interpréteur python,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> int('52.3')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: invalid literal for int() with base 10: '52.3'
    Maintenant un autre test,

    Si on fait le même test en transformant en flottant, puis en entier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> int(float('52.3'))
    52
    Si vous voulez des flottants,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> float('52.3')
    52.3
    En utilisant votre interpréteur vous évitez ces erreurs, il faudra y penser

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 24
    Par défaut
    bonsoir disedorgue,
    oui vous avez parfaitement raison un float est different d'un int mais dans ma liste je savais pas que yavait des float enfaite c'est pour ca...je pense que je vais essayer de les convertir tous en float pour voir si ca va marcher...merci beaucoup

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 24
    Par défaut
    bonsoir fre1599,

    jai essayer de transformer finalement tous les chiffre en float puis en entier mais ca marche pas jai toujours une erreur comme le montre la photo..ca mme met toujours "could not convert string to float"....[



    ATTACH=CONFIG]339264[/ATTACH]
    Images attachées Images attachées  

  6. #6
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Il y a sûrement un problème dans votre fichier... Pour vérifier cela, on pourrait faire un test en ajoutant un bloc try-except dans votre code à partir de la ligne 27.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try:
        annee[i] = int(float(valeur))
        i += 1
    except ValueError:
        print("le bug est: {}".format(valeur))
        break

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par Channelle Voir le message
    jai essayer de transformer finalement tous les chiffre en float puis en entier mais ca marche pas jai toujours une erreur comme le montre la photo..ca mme met toujours "could not convert string to float"...
    Une chaîne de caractères vide n'est ni un entier ni un float.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> float('')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: could not convert string to float:
    >>>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> int('')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: invalid literal for int() with base 10: ''
    >>>
    Et les messages d'erreurs sont suffisamment explicites.

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

Discussions similaires

  1. [String][ASCII]Java / Python
    Par chrdou dans le forum Général Java
    Réponses: 8
    Dernier message: 18/02/2005, 14h35
  2. [Débutant] Conversion d'un String en Int
    Par chleuh dans le forum Langage
    Réponses: 9
    Dernier message: 30/12/2004, 13h33
  3. [débutant] String ou int
    Par pingoui dans le forum Langage
    Réponses: 42
    Dernier message: 16/09/2004, 09h16
  4. Réponses: 2
    Dernier message: 21/06/2004, 15h55
  5. [FLASH MX 2004] conversion string en int.
    Par calfater dans le forum Flash
    Réponses: 3
    Dernier message: 26/05/2004, 15h00

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