0
votes

Comment puis-je surmonter ValueError lors de la conversion d'une chaîne en entier en Python?

J'essaye de convertir une liste de chaînes qui sont des nombres en une liste d'entiers. Mon objectif est de passer de ceci: ['3.14', '3.212', '3.248', '3.16'] à quelque chose comme ceci: [3.14, 3.212, 3.248, 3.16].

J'ai essayé d'utiliser un for boucle pour convertir chaque élément individuel de la liste en un int en utilisant la fonction de base int () mais je continue à obtenir une ValueError

ValueError: invalid literal for int() with base 10: '3.14'

Voici ce que j'attends: p>

[3.14, 3.212, 3.248, 3.16]

mais voici l'erreur que j'obtiens:

pi_values = []
pi_vals = ['3.14', '3.212', '3.248', '3.16']

for k in pi_vals:
    j = int(k)
    pi_values.append(j)

print(pi_values)

Comment puis-je résoudre ce problème? La plupart des sources en ligne que j'ai consultées ont directement suggéré de le convertir en utilisant la fonction int ().


1 commentaires

Ce n'est pas int , c'est float . Alors, utilisez j = float (k) . Je vous recommande vivement de lire les docs .


4 Réponses :


0
votes

Typographie en float.

j = float(k)


0 commentaires

0
votes

int ne concerne que les nombres tels que -3, -2, -1, 0, 1, 2, 3, ... Pour les fractions, vous devez utiliser float :

[3.14, 3.212, 3.248, 3.16]

Ou en bref:

pi_vals = ['3.14', '3.212', '3.248', '3.16']
[float(val) for val in pi_vals]

Sortie: p >

pi_values = []
pi_vals = ['3.14', '3.212', '3.248', '3.16']

for k in pi_vals:
    j = float(k)
    pi_values.append(j)

print(pi_values)


0 commentaires

0
votes

Voici la solution. Au lieu de int , utilisez float

pi_values = []
pi_vals = ['3.14', '3.212', '3.248', '3.16']

for k in pi_vals:
    j = float(k)
    pi_values.append(j)

print(pi_values)


0 commentaires

0
votes
float_strings = ['3.14', '2.4663']
floats = [float(number) for number in float_strings]

1 commentaires

Merci pour cet extrait de code, qui pourrait fournir une aide limitée et immédiate. Une explication appropriée améliorerait considérablement sa valeur à long terme en montrant pourquoi c'est une bonne solution au problème et le rendre plus utile aux futurs lecteurs avec d'autres questions similaires. Veuillez modifier votre réponse pour ajouter des explications, y compris les hypothèses que vous avez formulées.