bonjour j'essaye de faire pour le bac un programme python qui calcul la moyenne obtennu selon les différentes notes soit des coefficients , sauf que j'ai reussi a faire l'interface graphique mais pas les calcul si quelqu'un peut m'aider merci !
bonjour j'essaye de faire pour le bac un programme python qui calcul la moyenne obtennu selon les différentes notes soit des coefficients , sauf que j'ai reussi a faire l'interface graphique mais pas les calcul si quelqu'un peut m'aider merci !
Salut,
En général on crée d'abord le code qui fait le travail, dans ton cas saisir les données, opérer les calculs et retourner les résultats, et ensuite seulement on se pose la question de savoir si ce serait pas plus sexy dans une interface graphique.
Si tu montrais ce que tu as déjà écrit en expliquant où est-ce que tu coinces, ça facilitera la tâche parce que là on est dans le vide.
Merci de ta réponse actuellement j'ai réussi a juste faire un tableau sous Tkinter et une zone de saisie en face de chaque matiere mais mon programme ne sert a rien il y a aucun réel programme a part le graphique du tableau , je débute sur python et je nais vraiment pas comment attaquer pour faire ce programme...
from tkinter import *
from math import *
fen1 = Tk()
txt1 = Label(fen1, text = 'mathématiques :')
txt2 = Label(fen1, text = 'Français :')
txt3 = Label(fen1, text = 'Histoire :')
txt4 = Label(fen1, text = 'TPE :')
txt5 = Label(fen1, text = 'Sciences physiques :')
txt6 = Label(fen1, text = 'Anglais :')
txt7 = Label(fen1, text = 'Espagnol/Allemand :')
txt8 = Label(fen1, text = 'Philosophie :')
txt9 = Label(fen1, text = 'Sport :')
txt10= Label(fen1, text = 'SI :')
txt11= Label(fen1, text = 'Francais Orale :')
entr1 = Entry(fen1)
entr2 = Entry(fen1)
entr3 = Entry(fen1)
entr4 = Entry(fen1)
entr5 = Entry(fen1)
entr6 = Entry(fen1)
entr7 = Entry(fen1)
entr8 = Entry(fen1)
entr9 = Entry(fen1)
entr10 = Entry(fen1)
entr11 = Entry(fen1)
txt1.grid(row =1)
txt2.grid(row =2)
txt3.grid(row =3)
txt4.grid(row =4)
txt5.grid(row =5)
txt6.grid(row =6)
txt7.grid(row =7)
txt8.grid(row =8)
txt9.grid(row =9)
txt10.grid(row =10)
txt11.grid(row =11)
entr1.grid(row =1, column =1)
entr2.grid(row =2, column =1)
entr3.grid(row =3, column =1)
entr4.grid(row =4, column =1)
entr5.grid(row =5, column =1)
entr6.grid(row =6, column =1)
entr7.grid(row =7, column =1)
entr8.grid(row =8, column =1)
entr9.grid(row =9, column =1)
entr10.grid(row =10, column =1)
entr11.grid(row =11, column =1)
fen1.mainloop()
voila mon premier programme python ! je t'ai ecouté jai laché tKinter et voila le programme , par ocntre l'aspect graphique rest limité ... meric de vos réponse
a=input('quel est votre note de francais écrit ?: ')
b=input('quel est votre note de francais orale ?: ')
c=input('quel est votre note de tpe ?: ')
d=input('quel est votre note de physique chimie ?: ')
e=input('quel est votre note de mathématiques ?: ')
f=input('quel est votre note de SI ?: ' )
g=input('quel est votre note de histoire ?:' )
h=input('quel est votre note de ISN ?:' )
i=input('quel est votre note de EPS ?: ')
j=input('quel est votre note d\'anglais ?: ')
k=input('quel est votre note d\'espagnol ?: ')
l=input('quel est votre note de philosophie ?: ')
x=moyenne=(a*2+b*2+c*2+d*6+e*7+f*8+g*3+h*2+i*2+j*3+k*2+l*3)/42
print moyenne
if 0<=x<8 :
print 'Vous n\'avez pas assez travailé !'
print 'vous n\'avez pas le BAC'
if 8<=x<10:
print 'trop juste, vous etes au ratrapage !'
print 'commencez à révisez !'
if 10<=x<12:
print 'FELICITATION ! vous avez votre BAC !'
if 12<=x<14:
print 'FELICITATION ! vous avez votre BAC !'
print ' Avec menttion assez bien !'
if 14<=x<16:
print ' FELICITATION ! vous avez votre BAC !'
print 'Avec mention Bien !'
if 16<=x<=20:
print 'FELICITATION ! vous avez votre BAC !'
print ' Avec mention très Bien !'
else :
print 'Attention, vous avez fais une erreur dans la rentrée des notes ! veuillez verifier ,Merci'
Bonjour
Pense à mettre ton programme dans des balises code. Surtout en python. L'indentation est importante.
Tu a réussi. Il n'y a plus de question?
Tu aurais pu aussi utiliser une liste de notes et une liste de coefficient.
Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.
Ben voilà, c'était pas bien chinois. Faudra donner à ton script une forme pythonique maintenant.
En utilisant des listes au lieu de longues répétition et en plaçant les différentes parties du code dans des fonctions séparées.
Python 2 et 3
Je te laisse écrire une fonction qui estimera la moyenne obtenue (average) et qui retournera le texte de sentence à afficher.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 # -*- coding: utf-8 -*- NAMES = ['Francais écrit', 'Francais oral', 'Tpe', 'Physique chimie', 'Mathématiques', 'Si', 'Histoire', 'ISN', 'EPS', 'Anglais', 'Espagnol', 'Philosophie'] def get_value(name): while 1: try: val = input('Quel est votre note en %s : ' % name) # On teste s'il sagit d'une valeur numerique return float(val) except: # Si la donnée entrée au clavier n'est pas une donnée numérique # cela a levé une exception et on reste dans la boucle pass def get_average(values): # la liste des coéfficients cf = [2, 2, 2, 6, 7, 8, 3, 2, 2, 3, 2, 3] # on utilise zip() pour itérer sur les deux liste en même temps # donc values[0] et cf[0], values[1] et cf[1] etc.. # sum() fera le total de la liste des (valeur*coéfficient) tot = sum([x * y for x, y in zip(values, cf)]) return tot / 42 if __name__ == '__main__': # L'exécution du code commence ici. # on crée une liste vide pour les resultats des cours results = [] for n in NAMES: # pour chaque cours on va chercher la valeur avec la fonction get_value # et on l'ajoute à la liste avec append() results.append(get_value(n)) # on fait calculer la moyenne par get_average en lui donnant en argument # la liste des points des cours average = get_average(results)
Ensuite, tu verras comme il sera simple de placer par dessus ton interface graphique sans retoucher le code initial.
Merci, à tous les deux. Mais vinss peut tu m'expliquer ce que tu as fait jai du mal a comprendre merci ...
J'ai éditer mon post, j'ai commenté le code.
merci enormément de ton aide j'ai comprix le debut mais a partir de ce moment la je ne comprend pas ... on a deja calculer la moyenne pour quoi on fait cela ? :
if __name__ == '__main__':
# L'exécution du code commence ici.
# on crée une liste vide pour les resultats des cours
results = []
for n in NAMES:
# pour chaque cours on va chercher la valeur avec la fonction get_value
# et on l'ajoute à la liste avec append()
results.append(get_value(n))
# on fait calculer la moyenne par get_average en lui donnant en argument
# la liste des points des cours
average = get_average(results)
Pour éditer du code utilise la balise code, le symbole # dans le menu.
Le code commence ici:
Son exécution du moins.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if __name__ == '__main__':
Donc les deux fonctions qui précèdent n'ont pas encore été exécutées et ne le seront que lorsqu'on les appellera.
La première permet de saisir les cotations et la deuxième d'en calculer la moyenne, maintenant tu dois en écrire une dans le même style pour remplacer ceci:
Je te donne le début:if 0<=x<8 :
print 'Vous n\'avez pas assez travailé !'
print 'vous n\'avez pas le BAC'
if 8<=x<10:
print 'trop juste, vous etes au ratrapage !'
print 'commencez à révisez !'
if 10<=x<12:
print 'FELICITATION ! vous avez votre BAC !'
if 12<=x<14:
print 'FELICITATION ! vous avez votre BAC !'
print ' Avec menttion assez bien !'
if 14<=x<16:
print ' FELICITATION ! vous avez votre BAC !'
print 'Avec mention Bien !'
if 16<=x<=20:
print 'FELICITATION ! vous avez votre BAC !'
print ' Avec mention très Bien !'
et la fin:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 def get_sentence(val):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2return sentence
je suis désolé je ne voit vraiment pas comment faire, la facon d'ecrire le programme me parait etrange, comme on a pas executer le programme pq dois-je déjà faire la liste des resultat celon la note obtennue
quelqu'un peut m'aider s'il vous plait ?
Les codes que tu as postés au début sont peut-être fonctionnels mais horribles car tu écris 20 fois la même chose. Or les informaticiens sont des flemmards. Il mettent en facteur commun du code pour ne pas avoir à le réécrire comme tu as fait.
Pour ce faire, on utilise des boucles et des fonctions. Les boucles (for ...) sont capables de faire une action similaire mais adaptée pour chacune de tes matières. Et les fonctions (def ...), en python, sont une bulle à part, dans lesquelles s'exécute du code et que l'on peut appeler à n'importe quel moment (avec ou sans paramètre). La définition de la fonction n'est pas l'exécution de la fonction.
Je n'ai pas l'intention de répéter ce que l'on peut trouver dans n'importe quel tutoriel python. Mais ici, on te dit que faire une liste de matière, entrer les coef pour chaque matière et faire une boucle pour rentrer les notes fait un code plus propre et plus court.
Mieux que les listes dans ton cas: les dictionnaires (listes avec des champs nommé).
Un cours ttrès concret
Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.
Salut.
Avec mon groupe on a fignolés le code que voici:
Mais nous n'arrivont pas a interdire l'entrée de note au dessus de 20, comme vous avez pu faire avec l'entrée de lettres, c'est à dire faire une boucle qui nous redemande la note.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 # -*- coding: utf-8 -*- NAMES = ['Francais écrit', 'Francais oral', 'Tpe', 'Physique chimie', 'Mathématiques', 'Si', 'Histoire', 'ISN', 'EPS', 'Anglais', 'Espagnol', 'Philosophie'] def get_value(name): while 1: try: val = input('Quel est votre note en %s : ' % name) # On teste s'il sagit d'une valeur numerique return float(val) except: val= input>20('Quel est votre note en %s : ' % name) return float(val) # Si la donnée entrée au clavier n'est pas une donnée numérique # cela a levé une exception et on reste dans la boucle pass def get_average(values): # la liste des coéfficients cf = [2, 2, 2, 6, 7, 8, 3, 2, 2, 3, 2, 3] # on utilise zip() pour itérer sur les deux liste en même temps # donc values[0] et cf[0], values[1] et cf[1] etc.. # sum() fera le total de la liste des (valeur*coéfficient) tot = sum([x * y for x, y in zip(values, cf)]) return tot / 42 if __name__ == '__main__': # L'exécution du code commence ici. # on crée une liste vide pour les resultats des cours results = [] for n in NAMES: # pour chaque cours on va chercher la valeur avec la fonction get_value # et on l'ajoute à la liste avec append() results.append(get_value(n)) # on fait calculer la moyenne par get_average en lui donnant en argument # la liste des points des cours average = get_average(results) print average if 0<=average<8 : print 'Vous n\'avez pas assez travailé !' print 'vous n\'avez pas le BAC' if 8<=average<10: print 'trop juste, vous etes au ratrapage !' print 'commencez à révisez !' if 10<=average<12: print 'FELICITATION ! vous avez votre BAC !' if 12<=average<14: print 'FELICITATION ! vous avez votre BAC !' print ' Avec menttion assez bien !' if 14<=average<16: print ' FELICITATION ! vous avez votre BAC !' print 'Avec mention Bien !' if 16<=average<=20: print 'FELICITATION ! vous avez votre BAC !' print ' Avec mention très Bien !' if average<0 and average>20: print 'Attention, vous avez fais une erreur dans la rentrée des notes ! veuillez verifier ,Merci'
de plus on aimerai faire une interface graphique mais en introduisant from Tkinter import* rien ne change.
Merci
Salut,
Pas bon du tout ça.
Difficile de croire que vous vous y êtes mis à plusieurs pour recopier du code 'Take away' et y ajouter simplement les lignes de code que je t'ai conseillé de mettre dans une fonction.
En plus tu parles de fignolage ...
C'est ça le fignolage ?
Vérification:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 try: val = input('Quel est votre note en %s : ' % name) # On teste s'il sagit d'une valeur numerique return float(val) except: val= input>20('Quel est votre note en %s : ' % name) return float(val)
... ben non, ça marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 >>> val= input>20('Quel est votre note en: ') Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'int' object is not callable
Ou alors ceci ?
average ne peut pas être à la fois inférieur à 0 et supérieur à 20
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if average<0 and average>20:
Relis mon dernier post, crées une fonction pour l'estimation de la moyenne et pour l'interface graphique on verra après.
Mais peut-être qu'avant d'aller plus loin une plongée dans cette littérature te permettra de gagner du temps.
D'ici là:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 print 'Vous n\'avez pas assez travailé !' print 'vous n\'avez pas le BAC'
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager