A voir également:
- Code calcul bac
- Calcul moyenne excel - Guide
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
2 réponses
ghFrankfurt
Messages postés
207
Date d'inscription
mardi 16 novembre 2010
Statut
Membre
Dernière intervention
10 décembre 2014
23
10 déc. 2014 à 20:02
10 déc. 2014 à 20:02
Bonjour,
Dans la fonction "ajout_notes()" la liste notes[] n'est pas déclarée global.
Je suppose que ta fonction calcul_note() plante car du coup fait une une division par 0
Dans la fonction "ajout_notes()" la liste notes[] n'est pas déclarée global.
Je suppose que ta fonction calcul_note() plante car du coup fait une une division par 0
Oui mais elle est déclarée comme telle dans la fonction choisir_bac().
ghFrankfurt
Messages postés
207
Date d'inscription
mardi 16 novembre 2010
Statut
Membre
Dernière intervention
10 décembre 2014
23
Modifié par ghFrankfurt le 10/12/2014 à 21:11
Modifié par ghFrankfurt le 10/12/2014 à 21:11
Effectivement...
En revanche to for est faux.
for i in len(notes):
Pour récupérer les index tu dois faire for i in range(len(notes)):
Egalement, si je regarde un peu plus haut, coeff est un dictionnaire et les dictionnaires ne sont pas ordonnés comme les listes. Leurs unique index sont ceux qui sont défini : "Math, PC, LV1, ..."
En revanche to for est faux.
for i in len(notes):
Pour récupérer les index tu dois faire for i in range(len(notes)):
Egalement, si je regarde un peu plus haut, coeff est un dictionnaire et les dictionnaires ne sont pas ordonnés comme les listes. Leurs unique index sont ceux qui sont défini : "Math, PC, LV1, ..."
ghFrankfurt
Messages postés
207
Date d'inscription
mardi 16 novembre 2010
Statut
Membre
Dernière intervention
10 décembre 2014
23
>
Itachi-Uchiha
10 déc. 2014 à 21:41
10 déc. 2014 à 21:41
Comme je disais, "coeff" est un dictionnaire. Tu ne peux pas récupérer les valeurs comme dans une liste.
Tu dois récupérer les valeurs par leur index coeffs['Maths'] coeffs['PC']
coeffs[0] ..[1] ...[2] .. n'existent pas.
Tu dois récupérer les valeurs par leur index coeffs['Maths'] coeffs['PC']
coeffs[0] ..[1] ...[2] .. n'existent pas.
Regarde ce code et teste le psk je vois pas l'erreur et tu cerneras mieux mon problème je pense:
from Tkinter import * import tkMessageBox window = Tk() c = Canvas(window) c.pack() # image fond = PhotoImage(file="forme.gif") #image de fond c.create_image(0,0, image=fond) note = IntVar() bac = StringVar() numero = 0 notes = [] def choix_bac(): global matieres, coeffs, app, question, saisie bac_var = bac.get() if bac_var == "S": matieres = ['Maths','PC','LV1', 'Fr_Ecrit', 'Fr_Oral', 'HG', \ 'SI', 'ISN', 'LV2', 'Philo', 'EPS', 'TPE'] coeffs = [7, 6, 3, 2, 2, 3, 6, 2, 2, 3, 2, 2] elif bac_var == "ES": matieres = ['Maths','Sciences','LV1', 'Fr_Ecrit', 'Fr_Oral', 'HG', \ 'Sc.Eco', 'Sc.Pol.Sociale', 'LV2', 'Philo', 'EPS', 'TPE'] coeffs = [5, 2,3, 2, 2, 5, 7, 4, 2, 4, 2, 2] app.destroy() app = Frame(window) app.pack() question = Label(app, text = "Entrez votre note de " + matieres[numero]) question.pack() saisie = Entry(app, textvariable = note, width = 10) saisie.pack() saisie.delete(0, END) saisie.focus() bouton_ok = Button(app, text = "OK", command = ajout_notes) bouton_ok.pack(side = BOTTOM) def ajout_notes(): global numero # Validation if 0 <= note.get() <= 20: notes.append(note.get()) else: saisie.delete(0, END) tkMessageBox.showwarning("Erreur", "Entrez une note de 0 à 20") return if len(notes) < len(matieres): numero += 1 saisie.delete(0, END) question.config(text = "Entrez votre note de " + matieres[numero]) else: bouton_ok = Button(app, text = "OK", command = calcul_note) bouton_ok.pack(side = BOTTOM) def calcul_note(): m = 0 for i in range(len(notes)): m = m + notes[i] * coeffs[i] m = m / len(notes) app = Frame(window) app.pack() resultat = Label(app, text = "Voici votre note:{0}".format(m)) resultat.pack() bouton_fin = Button(app, text = "Quitter", command = window.destroy) bouton_fin.pack(side = BOTTOM) app = Frame(window) app.pack() intro = Label(app, text = "Ce programme va vous permettre \ de calculer votre resultat au BAC ") intro.pack() choix = Label(app, text = "Quel bac avez vous passé ?") choix.pack() bac_S = Radiobutton(app, text="S", variable = bac, value="S") bac_ES = Radiobutton(app, text="ES", variable = bac, value="ES") bac_S.pack() bac_ES.pack() bac.set('S') # Initialisation bouton_ok = Button(app, text = "OK", command = choix_bac) bouton_ok.pack(side = BOTTOM) window.mainloop()