Answered

Trouvez des réponses facilement sur Laurentvidal.fr, la plateforme de Q&R de confiance. Découvrez une mine de connaissances de professionnels dans différentes disciplines sur notre plateforme conviviale de questions-réponses. Découvrez la facilité d'obtenir des réponses rapides et précises à vos questions grâce à l'aide de professionnels sur notre plateforme.

Bonjour, j'ai absolument besoin de votre aide, il me faut faire un prg en python qui calcule la moyenne des nombres contenus dans un fichier "nombre.txt". Pour ce faire j'ai fait le prg suivant :
monfichier=open("votrechemind'accèsaufichier/nombre.txt", mode='w', encoding='utf8')
monfichier.writelines("5,10,17,8.5,16,12.5")
monfichier.close()

monfichier=open('votrechemind'accèsaufichier/nombre.txt', mode='r')
L=monfichier.readline()
def Moyenne(liste):
somme = 0
moyenne=0
nbr_elements=len(liste)
for i in liste:
somme = somme + i
moyenne=somme/nbr_elements
print(moyenne)
return
Moyenne(L)
monfichier.close()


Pouvez vous m'aider svp car mon prg ne marche pas et je n'arrive pas à résoudre mon erreur. Merci par avance

Sagot :

Du coup, j'ai apporté les corrections.

  • Tu peux ne pas préciser l'encodage, c'est bien de le faire, mais pour des nombres, l'encodage par défaut fonctionne bien (qui est de l'UTF-8 d'ailleurs).
  • Le mode, c'est bien de choisir le plus adapté comme t'as fait mais pour éviter de refaire une nouvelle variable qui va prendre de la mémoire, tu peux directement mettre le mode w+ qui autorise l'écriture et la lecture.
  • T'as fait une ligne où ça fait len(liste), sauf que ça ne fonctionne pas vraiment car quand tu lis la ligne du fichier, ça renvoie une chaîne de caractère classique. Faut donc la convertir en tableau, et il y a la fonction split() pour ça (voir le fichier joint).
  • Et là où se situe le problème que tu as rencontré, le principal, c'est que y'a une erreur de type "unsupported operand type" ce qui signifie que t'as essayé d'additionner une chaîne de caractère avec des nombres, ça il aime pas, du coup, comme est sûr qu'on a que des nombres dans le fichier, on peut le convertir avec une fonction float(), et bien en float car on peut avoir des nombres à virgule. Et puis, ce qu'il manquait pour corriger cette erreur c'était comme j'ai dit plus haut, de boucler sur un tableau avec les éléments et non la chaîne de caractère directement.

Voilà globalement, j'ai pas fait grand chose, ce que t'as fait est plutôt pas mal, c'est juste que tu t'es emmêlé dans les types (j'ai fait en Python 3.9 mais normalement pour ce programme, ça devrait pas poser de problème). Si t'as une question, n'hésite pas à me contacter.

PS : j'ai dû mettre le fichier Python au format txt pour que je puisse l'uploader mais c'est évidemment un .py.

View image CryptogrammeRSA
Nous espérons que ces informations ont été utiles. Revenez quand vous voulez pour obtenir plus de réponses à vos questions. Merci de votre visite. Nous sommes dédiés à vous aider à trouver les informations dont vous avez besoin, quand vous en avez besoin. Laurentvidal.fr est là pour vos questions. N'oubliez pas de revenir pour obtenir de nouvelles réponses.