Création d'une fonction
Meste_maiun
Messages postés
5
Statut
Membre
-
Meste_maiun Messages postés 5 Statut Membre -
Meste_maiun Messages postés 5 Statut Membre -
Bonjour,
je fais actuellement une formation Python et j'ai un petit problème
Je dois créer une fonction qui prend comme paramètre une liste de nombres « stringifiés » et renvoie une liste de nombres.
Exemple:
["1", "3", "3.6"] ➞ [1, 3, 3.6]
Mon code
def to_number_list(lst):
lst = ['1.5', '4.22', '3.7', '6', '7']
print ("Liste originale : " + str(lst))
for i in range(0, len(lst)):
lst[i] = float(lst[i])
print ("liste finale : " + str(lst))
Quand je teste mon code sur un compilateur python en ligne, cela me dit que ma variable lst n'est pas nommée
Par contre, si je supprime def to_number_list(lst): (la définition de la fonction), j'obtiens le résultat attendu
Mais bien sûr pour pouvoir passer le test, je ne peux absolument pas supprimer cette partie du code ;-)
Merci d'avance pour votre aide
Cordialement
Configuration: Windows / Edge 98.0.1108.55
je fais actuellement une formation Python et j'ai un petit problème
Je dois créer une fonction qui prend comme paramètre une liste de nombres « stringifiés » et renvoie une liste de nombres.
Exemple:
["1", "3", "3.6"] ➞ [1, 3, 3.6]
Mon code
def to_number_list(lst):
lst = ['1.5', '4.22', '3.7', '6', '7']
print ("Liste originale : " + str(lst))
for i in range(0, len(lst)):
lst[i] = float(lst[i])
print ("liste finale : " + str(lst))
Quand je teste mon code sur un compilateur python en ligne, cela me dit que ma variable lst n'est pas nommée
Par contre, si je supprime def to_number_list(lst): (la définition de la fonction), j'obtiens le résultat attendu
Mais bien sûr pour pouvoir passer le test, je ne peux absolument pas supprimer cette partie du code ;-)
Merci d'avance pour votre aide
Cordialement
5 réponses
-
Bonjour,
On y verrait plus clair si tu affichais ton code avec les balises de code, mode d'emploi ici:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ça:for i in range(0, len(lst)): lst[i] = float(lst[i]) -
Merci pour la réponse et la suggestion
J'ai du m'y reprendre à deux fois ;-)def to_number_list(lst): lst = ['1.5', '4.22', '3.7', '6', '7'] print ("Liste originale : " + str(lst)) for i in range(0, len(lst)): lst[i] = float(lst[i]) print ("liste finale : " + str(lst)) -
ok mais il manque les indentations, primordiales en Python
J'imagine que c'est comme ça ? :
def to_number_list(lst): lst = ['1.5', '4.22', '3.7', '6', '7'] print ("Liste originale : " + str(lst)) for i in range(0, len(lst)): lst[i] = float(lst[i]) print ("liste finale : " + str(lst))
je comprends que ça ne marche pas : tout le code est dans la fonction
donc, évidemment, si tu enlèves la ligne def ...., (et les indentations) ca marche -
Bonsoir
Merci de vos réponses
Je ne connaissais pas le python jusqu'à hier ;-)))
Et j'ai jusqu'au 12 mai pour en connaître les bases pour une pré-sélection à une formation...
ça marche dans le compilateur en ligne espérons que cela fonctionnera sur le site de test (Edabit)
Merci pour vos conseils -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Après vérification, cela fonctionne à merveille sur un compilateur externe (https://www.onlinegdb.com/)
Liste originale : ['1.5', '4.22', '3.7', '6.35', '7.62']
liste finale : [1.5, 4.22, 3.7, 6.35, 7.62]
Mais je n'ai pas le résultat attendu avec le même code sur Edabit même en mettant les deux dernier nombre non entier
Liste originale : ['1.5', '4.22', '3.7', '6.35', '7.62']
liste finale : [1.5, 4.22, 3.7, 6.35, 7.62]
finale de la liste : [1.0, 2.0]
ÉCHEC : Aucun ne doit être égal à [1, 2]
ERREUR : Retraçage :
dans <module>
Fichier « ./frameworks/python/cw-2.py », ligne 28, dans assert_equals
expect(actual == expected, message, allow_raise)
Fichier « ./frameworks/python/cw-2.py », ligne 18, dans expect
raise AssertException(message)
cw-2. AssertException : Aucun ne doit être égal à [1, 2]
dans le résultat, j'ai la ligne en gras qui s'affiche en plus et elle semble tout faire planter
Merci