Bonjour, jai besoin d'aide rapidement pour mon DM de nsi, exo pratique type bac
Résolu/Fermé
A voir également:
- Moyenne pondérée python
- Télécharger film d'action gratuitement et rapidement - Télécharger - TV & Vidéo
- Fiche pratique tableau croisé dynamique - Guide
- Bac a sable windows - Guide
- Clear type - Guide
- Télécharger rapidement - Télécharger - Téléchargement & Transfert
7 réponses
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 7 mars 2021 à 16:23
Modifié le 7 mars 2021 à 16:23
Bonjour,
L'indentation étant importante en Python, merci de copier/coller ici ton code complet avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :
De plus si on fait
ca veut dire que la fonction moyenne est censée retourner une valeur ...
et tu passes notes en argument à la fonction , alors que notes est définie à l'intérieur
L'indentation étant importante en Python, merci de copier/coller ici ton code complet avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :
def test(): print('test') test()
De plus si on fait
print(moyenne(notes))
ca veut dire que la fonction moyenne est censée retourner une valeur ...
et tu passes notes en argument à la fonction , alors que notes est définie à l'intérieur
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 7 mars 2021 à 17:33
Modifié le 7 mars 2021 à 17:33
Bien sur, c'est ce que je te disais dans mon message précédent:
print(moyenne(notes))
et j'obtient : Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
NameError: name 'notes' is not defined
le nom notes n'est pas défini au moment où tu appelle moyenne(notes)
il est défini à l'intérieur de la fonction, donc trop tard
Et je te répète, pour faire print(moyenne(notes)) , il faut un return(s/scoeff) en fin de fonction
print(moyenne(notes))
et j'obtient : Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
NameError: name 'notes' is not defined
le nom notes n'est pas défini au moment où tu appelle moyenne(notes)
il est défini à l'intérieur de la fonction, donc trop tard
Et je te répète, pour faire print(moyenne(notes)) , il faut un return(s/scoeff) en fin de fonction
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 7 mars 2021 à 18:07
Modifié le 7 mars 2021 à 18:07
Comment ça "Et comment je définis ?"
tu l'as déjà fait dans ta fonction:
notes = [(15,2),(9,1),(12,3)]
sauf qu'il faut déplacer ça avant la définition de fonction, donc avant le def ...
tu l'as déjà fait dans ta fonction:
notes = [(15,2),(9,1),(12,3)]
sauf qu'il faut déplacer ça avant la définition de fonction, donc avant le def ...
C'est fait. Maintenat quand je fais
Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
File "C:\Lycée\nsi\Terminale\DM\DM NSI 3.py", line 13, in moyenne
for elt in notes():
TypeError: 'list' object is not callable
Je dois enlever le "notes" du
print(moyenne(notes))ça donne:
Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
File "C:\Lycée\nsi\Terminale\DM\DM NSI 3.py", line 13, in moyenne
for elt in notes():
TypeError: 'list' object is not callable
Je dois enlever le "notes" du
for elt in notes():?
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
7 mars 2021 à 18:33
7 mars 2021 à 18:33
Non, c'est qu'on ne peut pas parcourir une liste de tuples comme tu le fais
notes est une liste de 3 tuples ...
il faut faire une boucle avec range comme tu le fais plus bas:
C'est élémentaire, tout ça, il faudrait vraiment que tu apprennes les bases ...
notes est une liste de 3 tuples ...
il faut faire une boucle avec range comme tu le fais plus bas:
for k in range(len(notes)):
C'est élémentaire, tout ça, il faudrait vraiment que tu apprennes les bases ...
Oui je sais que j'ai beaucoup à apprendre. Voici le code maintenant:
Quand je fais
notes = [(15,2),(9,1),(12,3)] def moyenne(notes): """ Fonction qui calcule la moyenne pondérée :param notes: (float) compris entre 0 et 20 :param coeff: (int) :exemple: >>> print(moyenne) moyenne([(15,2),(9,1),(12,3)]) """ s=0 scoeff=0 note = (15,9,12) coeff = (2,1,3) for i in range(len(notes)): s=s+coeff[i]*note[i] scoeff=scoeff+coeff[i] return(s/scoeff)
Quand je fais
print(moyenne(notes))ça donne
12,5alors que je devrais obtenir 11,83
yg_be
Messages postés
23303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
31 octobre 2024
1 549
>
Leziry00
7 mars 2021 à 19:29
7 mars 2021 à 19:29
détaille ton calcul, explique pourquoi tu devrais obtenir 11.83.
a+-tu compris l'énoncé, ou est-ce ton ami qui l'a compris?
a+-tu compris l'énoncé, ou est-ce ton ami qui l'a compris?
Leziry00
>
yg_be
Messages postés
23303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
31 octobre 2024
7 mars 2021 à 19:41
7 mars 2021 à 19:41
L'exercice 1 j'ai compris l'énoncé, la fonction doit faire note*coeff+note*coeff+note*coeff diviser par la somme des coeff . C'est la formule qui calcul la moyenne pondérée non ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 7 mars 2021 à 19:32
Modifié le 7 mars 2021 à 19:32
?
(15x2)+(9x1)+(12x3)=75
2+1+3=6
75/6 = 12.5
(15x2)+(9x1)+(12x3)=75
2+1+3=6
75/6 = 12.5
yg_be
Messages postés
23303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
31 octobre 2024
1 549
7 mars 2021 à 19:32
7 mars 2021 à 19:32
je pense que le programme
moyenneest correct. peut-être parce qu'il a été écrit par quelqu'un d'autre, qui a compris l'énoncé.
yg_be
Messages postés
23303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
31 octobre 2024
1 549
>
Leziry00
7 mars 2021 à 19:55
7 mars 2021 à 19:55
as-tu vérifié le calcul du professeur?
Leziry00
>
yg_be
Messages postés
23303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
31 octobre 2024
7 mars 2021 à 20:49
7 mars 2021 à 20:49
Oui, ça fait 12,5. Merci beaucoup à vous 2 pour votre aide. Il me reste que le 2.
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
8 mars 2021 à 08:45
8 mars 2021 à 08:45
Bonjour,
Par contre, tu n'utilises pas la variable notes pour la découper en ses différents éléments
tu as codé "en dur" les variables note et coeff pour faire le découpage
et donc ton programme ne fonctionne que pour ces valeurs là ...
Par contre, tu n'utilises pas la variable notes pour la découper en ses différents éléments
tu as codé "en dur" les variables note et coeff pour faire le découpage
et donc ton programme ne fonctionne que pour ces valeurs là ...
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
>
Leziry00
8 mars 2021 à 13:06
8 mars 2021 à 13:06
avec ta boucle:
notes[k] te donne chaque tuple contenu dans la liste
ensuite tu re découpe chaque tuple (par exemple (15,2) ) pour extraire les 2 chiffres 15 et 2, etc...
for i in range(len(notes)): print(notes[k])
notes[k] te donne chaque tuple contenu dans la liste
ensuite tu re découpe chaque tuple (par exemple (15,2) ) pour extraire les 2 chiffres 15 et 2, etc...
yg_be
Messages postés
23303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
31 octobre 2024
1 549
>
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
8 mars 2021 à 13:31
8 mars 2021 à 13:31
s=s+notes[i][1]*notes[i][0] scoeff=scoeff+notes[i][1]
Leziry00
>
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
8 mars 2021 à 21:35
8 mars 2021 à 21:35
Bonsoir, désolé de répondre si tard. Encore merci à vous deux, maintenant mon code fonctionne avec n'importe quelle note et coefficient.
yg_be
Messages postés
23303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
31 octobre 2024
1 549
>
Leziry00
8 mars 2021 à 21:42
8 mars 2021 à 21:42
peux-tu alors marquer la discussion comme résolue?
7 mars 2021 à 16:45
Modifié le 7 mars 2021 à 16:47
7 mars 2021 à 17:11
7 mars 2021 à 17:22
et j'obtient : Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
NameError: name 'notes' is not defined
Et pour l'exerice 2, je tape ça:
et j'obtient:
alors que je devrais avoir ça:
Et quand je tape un nombre supérieur à 4 :
, j'obtient ça:
Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
File "C:\Lycée\nsi\Terminale\DM\DM NSI 3.py", line 36, in pascal
Ck.append(C[1][i-1]+C[k-1][1])
IndexError: list index out of range
7 mars 2021 à 17:36