je qualifierai ce genre de problème de "tordu"! Vraiment. [ finalement, non, une fois l'explication trouvée ]
J'ai écrit un script pour transformer les nombres d'une liste en nombres entiers, et donc j'utilise la fonction int() censée faire la conversion d'une chaîne de caractères ou d'un nombre quelconque en un nombre entier, si j'interprète correctement ceci, source = https://www.pythontutorial.net/python-b ... ython-int/
Effectivement int(6.3) donne 3, mais si je place ça dans un script, rien ne va plus:Introduction to the Python int() constructor
The int() accepts a string or a number and converts it to an integer.
Code : Tout sélectionner
numbers = input("enter a list of numbers separated by commas: ")
enter a list of numbers separated by commas: 1, 6.3
list = numbers.split(",")
list_integers = []
for numbers in list:
integers = int(numbers)
list_integers.append(integers)
print(list_integers)
[1]
Traceback (most recent call last):
File "<pyshell#91>", line 2, in <module>
integers = int(numbers)
ValueError: invalid literal for int() with base 10: ' 6.3'
Et donc en modifiant la ligne "integers = int(numbers)" qui devient "integers = int(float(numbers))" tout fonctionne.
PS: openclassrooms ne précisait pas que sa liste dans "input" ne devait contenir que des nombres entiers. Je me demande comment les autres utilisateurs de leur site ont réagi.