# Calcul d'une moyenne pondérée # Fonction permettent de tester que l'entrée d'une note est bien un nombre décimal def nombre_decimal(nombre): """ Examine chaque caractère de la chaîne note et en vérifiant qu'il fait partie de la liste éléments comprenant les caractères d'un nombre décmal.""" conforme=True # cette variable est initialisée à True et passe à False si au monis un des caractères testés n'est pas conforme elements=["+","-",".","0","1","2","3","4","5","6","7","8","9"] # liste des caractères autorisés # boucle permettant de tester chaque caractère de la note l'un après l'autre for i in nombre: conformei=False # variable initialisée à False et passant à True si le caractère testé est dans la liste elements # Boucle permettant de comparer i à chaque caractère de la liste elements for j in elements: if i==j: conformei=True # passage de la variable conformei à True si i correspond à un caractère le la liste elements conforme=conforme and conformei # la valeur de la variable conforme est le résultat d'un et logique entre conforme et conforme i # conforme est vraie si tous les caractères testés sont dans la liste elements # Il reste à vérifier qu'il y a au maximum un signe et une virgule signe=nombre.count("+")+nombre.count("-") # compte le nombre de + et - dans la variable "nombre" print(signe) if signe>1: # si ce nombre est >1, la valeur False est attribuée à la variable conforme. conforme=False print(conforme) virgule=nombre.count(".") # compte le nombre de. dans la variable "nombre" print(virgule) if virgule>1: # si ce nombre est >1, la valeur False est attribuée à la variable conforme. conforme=False print(conforme) return conforme # Fonction pour entrer des notes, totaux et coefficients. def entree_donnees(): # Initialisation des variables locales note="" #note à ajouter notes=[] # liste des notes totaux=[] # liste des totaux coefficients=[] #liste des coefficients encore=True # veriable permettant de continuer à rentrer des notes ou arrêter while encore==True: # test de la variable encore pour l'entrée des notes continuer="" # Initialisation de la variable permettant de s'assurer que la valeur entrée pour entrer des notes ou arrêter est conforme decimal=False # variable permettant de contrôler que la note rentrée est conforme # Entrée d'une note, du total et du coefficcients correspondants print("Entrée d'une nouvelle note.") while decimal==False: note=input("Entrez votre note: ") decimal=nombre_decimal(note) notes.append(note) # Ajout de la note à la liste des notes totaux.append(input("Entrez la note maximale de ce devoir: ")) # Ajout du total à la liste des totaux coefficients.append(input("Entrez le coefficient de ce devoir: ")) # Ajout du coefficient à liste des coefficcients # Boucle sur la question permettant de vérifier que la réponse est conforme et renouvellement de la question sinon while continuer!="O" and continuer!="N" and continuer!="o"and continuer!="n": continuer=input("Voulez-vous entrer une nouvelle note? O/N ") if continuer == "O": encore=True elif continuer =="N": encore=False else: continuer="" # création d'un tupple contenant les notes, totaux et coefficients puis exportation en résultat de la fonction donnees=notes,totaux,coefficients return donnees #fonction de calcul d'une moyenne pondérée def moyenne_ponderee(notes,coefficients,totaux): """ Cacul d'une moyenne pondérée à partir d'une liste de notes et d'une liste de coefficients""" somme=0 maximum=0 for i in range (len(notes)): somme+=float(notes[i])*float(coefficients[i]) maximum+=float(totaux[i])*float(coefficients[i]) moyenne=somme*20/maximum return moyenne # Programme pricipal: Calcul et affichage de la moyenne donnees=entree_donnees() notes=donnees[0] print ("notes: ",notes) totaux=donnees[1] print("totaux: ",totaux) coefficients=donnees[2] print("coefficients: ",coefficients) print ("Moyenne obtenue: ",moyenne_ponderee(notes,coefficients,totaux))
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question