Algorithme python

Résolu/Fermé
max51351 - Modifié le 19 oct. 2019 à 11:31
 max.tdf22445 - 19 oct. 2019 à 18:06
bonjour a tous je doit faire un algorithme sur python pour calculer la moyenne d'une classe à un contrôle mais je comprend pas pourquoi python me dit qu'il y a une erreur au niveau de la boucle for et je ne trouve pas non plus comment exprimer le calcul sur python pour pouvoir calculer la somme des notes de n élèves.
voici mon programme:

N= "le nombre d'élève dans la classe"
S = "sommes des notes des élèves notés"
Note = "note de chaque élève"
Moyenne ="note moyenne du devoir"


int(input ("le nombre d'élève dans la classe"))
for Note in range (1, N):
                         int(input ("note de chaque élève"))
                         S = N
                         N = N + 1
Moyenne = S/N
print("Moyenne de classe = Moyenne")
if Moyenne<10:
             print("Résultat insuffisant")
elif 10<=Moyenne<=14:
                     print("Résultat assez satisfaisant")
else:
     print("Résultat satisfaisant")


merci de m'aider d'avance
A voir également:

5 réponses

jee pee Messages postés 39632 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234
Modifié le 19 oct. 2019 à 12:18
Bonjour,

Voilà mes remarques :
ligne 1 : il faut affecter l'input à la variable N
ligne 2 : ta boucle elle permet de saisir la Note, mais elle ne prend pas une valeur de boucle qui s'appelle Note, tu pourrais donner une valeur de boucle i, mais comme tu ne l'utilises pas, tu peux te contenter d'un for loop. Range démarre à zéro et une boucle (1,2) ne s'exécute qu'une fois, il vaut mieux là n'ayant pas besoin de l'indice de boucle, faire un range(N)
ligne 3 : comme ligne 1, il faut affecter l'input à la variable Note
ligne 4 : il faut faire un cumul de Note dans S, pas une affectation. Et avant de démarrer la boucle il faudrait initialiser S à zéro.
ligne 5 : on ne gère pas l'indice de la boucle, c'est l'instruction for qui s'en charge
ligne 7 : pour imprimer la Moyenne, il faut mettre la variable en dehors du texte "..."
ligne 10 : tester <=14 est suffisant, le <10 a déjà été évacué par le test précédent

Cdlt
1
max51351 Messages postés 4 Date d'inscription samedi 19 octobre 2019 Statut Membre Dernière intervention 19 octobre 2019
Modifié le 19 oct. 2019 à 14:38
merci beaucoup mais je suis débutant dans la programmation j'ai modifié les éléments qui me sembler bon de changer mais je ne suis sur de rien
voila le programme que j'obtiens qui ne fonctionne toujours pas :

N = "le nombre d'élève dans la classe"
S = "la somme des notes des élèves notés"
Note = "note de chaque élève"
Moyenne = "note moyenne du devoir"


int(input("le nombre d'élève dans la classe "(N)))
S = 0
for i in range (N):
                     int(input("la note de chaque élève"(N)))
                     S = S + Note
Moyenne = S/N
int(print("Moyenne de la classe="(Moyenne)))
if Moyenne<10:
              print ("Résultat insufisant")
elif Moyenne<=14:
                     print("Résultat assez satisfaisant"(Moyenne))
else:
     print("Résultat satisfaisant")
0
jee pee Messages postés 39632 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234
Modifié le 19 oct. 2019 à 14:50
Cela avance.

Mais il faut que te revoies la syntaxe de l'input : https://www.geeksforgeeks.org/taking-input-in-python/

Et en 1 c'est la saisie de N mais en 4 c'est la saisie de Note

En 7, pourquoi faire d'une chaine un integer ??? la syntaxe c'est tout simplement print("chaine",variable), pareil en 11

(pense à utiliser la coloration syntaxique du code dans la saisie avec les icones au dessus du champ de saisie)
0
max51351 Messages postés 4 Date d'inscription samedi 19 octobre 2019 Statut Membre Dernière intervention 19 octobre 2019
19 oct. 2019 à 14:53
désolé mais la je ne comprend plus rien
0
jee pee Messages postés 39632 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234 > max51351 Messages postés 4 Date d'inscription samedi 19 octobre 2019 Statut Membre Dernière intervention 19 octobre 2019
Modifié le 19 oct. 2019 à 14:58
Regarde bien les exemples d'input,

la syntaxe c'est
variable=input("intitulé")
on affecte la réponse de l'utilisateur à une variable

donc dans ton cas :
N=int(input("le nombre d’élèves dans la classe"))
0
max51351 Messages postés 4 Date d'inscription samedi 19 octobre 2019 Statut Membre Dernière intervention 19 octobre 2019
Modifié le 19 oct. 2019 à 15:09
N = int(input("le nombre d'élève dans la classe "))
S = 0
for i in range (N):
                     Note = int(input("la note de chaque élève"))
                     S = S + Note
Moyenne = S/N
Moyenne = (print("Moyenne de la classe="))
if Moyenne<10:
                            print ("Résultat insuffisant")
elif Moyenne<=14:
                                 print("Résultat assez satisfaisant"))
else:
         print("Résultat satisfaisant")

est ce que cela parait plus convenable
j'ai de gros doute
en tous cas merci pour le temps passé a essayer de résoudre mon problème
0
jee pee Messages postés 39632 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234
Modifié le 19 oct. 2019 à 15:18
Soit ça fonctionne, soit pas ;-)

cela me semble bien, sauf ligne 7, la syntaxe c'est
print("chaine",variable), 
avec ton code tu écrases la variable Moyenne avant les tests
0
max51351 Messages postés 4 Date d'inscription samedi 19 octobre 2019 Statut Membre Dernière intervention 19 octobre 2019
19 oct. 2019 à 17:49
je vous remercie beaucoup
le programme marche
cordialement
0
jee pee Messages postés 39632 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234
19 oct. 2019 à 17:56
Bien ! j'espère que tu en auras appris un peu plus sur, l'affectation d'une variable, utiliser la bonne variable au bon endroit, input, print, for ... La logique de ton code était bonne, mais dans le détail l'utilisation des commandes péchait.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
max.tdf22445
19 oct. 2019 à 18:06
oui et je vous en remercie
0