Python retour à la ligne
Résolu
Bonjour à tous.
Je débute en python et je ne connais aucun autre langage informatique.
Je fais une erreur que j'arrive pas à identifié sur l’exercice suivant:
Le fichier notes.txt contient les notes obtenues par des étudiants pour le cours de Python. Chaque ligne du fichier ne
contient qu’une note.
Créez un script Python qui lit chaque ligne de ce fichier, extrait les notes sous forme de float et les stocke dans une liste.
Le script réécrira ensuite les notes dans le fichier moyenne.txt avec une note par ligne suivie de « recalé » si la note est
inférieure à 10 et « admis » si la note est supérieure ou égale à 10. Toutes les notes seront écrites avec une décimale. À titre d’exemple, voici les 3 premières lignes attendues pour le fichier moyenne.txt :
1| 13.5 admis
2| 17.0 admis
3| 9.5 recalé
voici mon script:
voici le résulta:
13.5
admis
17.0
admis
9.5
recale
10.0
admis
16.5
admis
8.5
recale
18.5
admis
Voulez vous m'aider à comprendre mon erreur qui fait que python retourne à la ligne après la notes.
Merci
Je débute en python et je ne connais aucun autre langage informatique.
Je fais une erreur que j'arrive pas à identifié sur l’exercice suivant:
Le fichier notes.txt contient les notes obtenues par des étudiants pour le cours de Python. Chaque ligne du fichier ne
contient qu’une note.
Créez un script Python qui lit chaque ligne de ce fichier, extrait les notes sous forme de float et les stocke dans une liste.
Le script réécrira ensuite les notes dans le fichier moyenne.txt avec une note par ligne suivie de « recalé » si la note est
inférieure à 10 et « admis » si la note est supérieure ou égale à 10. Toutes les notes seront écrites avec une décimale. À titre d’exemple, voici les 3 premières lignes attendues pour le fichier moyenne.txt :
1| 13.5 admis
2| 17.0 admis
3| 9.5 recalé
voici mon script:
with open("notes.txt", "r") as fichier1, open("liste.py", "w") as fichier2:
for notes in fichier1:
fichier2.write("{}\n".format(float(notes)))
with open("liste.py", "r") as filin, open("moyenne.txt", "w") as fichier3:
for ligne in filin:
if float(ligne) < 10.0:
fichier3.write("{0}{1}\n".format(str(ligne), "recale"))
else:
fichier3.write("{0}{1}\n".format(str(ligne), "admis"))
voici le résulta:
13.5
admis
17.0
admis
9.5
recale
10.0
admis
16.5
admis
8.5
recale
18.5
admis
Voulez vous m'aider à comprendre mon erreur qui fait que python retourne à la ligne après la notes.
Merci
5 réponses
-
ModérateurBonjour,
D'abord sur la logique, l’exercice demande de lire le fichier en entrée pour créer une liste, donc les notes doivent être chargées dans une liste mémoire liste[15,10,8,...] pas dans un fichier liste.py (d'ailleurs cette extension devrait être réservée à du code source).
Puis faire une boucle sur la liste pour créer le fichier de sortie.
Dans ton code c'est le \n qui provoque un saut de ligne, enfin peut être je ne fais pas réellement de python
Sur le forum, pour afficher du code il faut utiliser balises code. Un petit tuto là https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Au dessus de la zone d'édition de tes messages, il y a des icones pour les enrichissements du texte.
Celle qui a cet aspect <>▼ permet d'appliquer aux codes le format correspondant à sa nature.
Cdlt