Answered

Bienvenue sur Laurentvidal.fr, la meilleure plateforme de questions-réponses pour trouver des réponses précises et rapides à toutes vos questions. Rejoignez notre plateforme de questions-réponses pour obtenir des informations précises d'experts dans divers domaines. Découvrez des solutions complètes à vos questions grâce à des professionnels expérimentés sur notre plateforme conviviale.

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
Merci d'utiliser notre service. Nous sommes toujours là pour fournir des réponses précises et à jour à toutes 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. Merci de faire confiance à Laurentvidal.fr. Revenez pour obtenir plus d'informations et de réponses.