IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

[Projet] Problème incompréhensible


Sujet :

Python

  1. #1
    Membre à l'essai
    Profil pro
    Lycéen
    Inscrit en
    Mars 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2006
    Messages : 21
    Points : 14
    Points
    14
    Par défaut [Projet] Problème incompréhensible
    Salutations à tous et à toutes !

    Ce soir je me suis lancé dans un projet, me disant que je m'y connaissais assez en Python pour faire un programme capable de donner la moyenne générale d'un élève en fonction de ses moyennes, du nombre de moyennes, mais aussi avec des baremes diffèrents : une moyenne sur 40, une autre sur 20, etc. De plus, à la fin, on pourra faire un classement des matières. Bon je me suis lancé, j'avoue que le code est TRES TRES embrouillé. Je vous le donne je suis sympa . Le code n'est pas fini, il me manque la dernière partie, le classement.





    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
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    #-----------------------------------PRISE DES DONNEES DE L'UTILISATEUR-------------------------
    print "                                       ---------------BIENVENUE---------------"
    print "\n"
    print "Ce programme permet de calculer votre moyenne et d'en faire les statistiques."
    print "\n"
    subjects=[]
    moyennes=[]
    c=0
    nombre=input("Combien avez-vous de matieres ?   ")
    print "\n"
    c=0
    while c<nombre :
    	data = raw_input("Tapez le nom de la matiere :   ")
    	subjects.append(data)
    	data=0
    	float(data)
    	data = input("Tapez la moyenne obtenue (exemple : 16.5/20) :   ")
    	if data > 1  :
    		error=0
    		while error<1 :
    			print "__Erreur__     Vous devez utiliser une fraction   "
    			data=input("->Tapez la moyenne obtenue (exemple : 16.5/20) :   ")
    			if data>1 :
    				error=0
    			else :
    				error=1
    				moyennes.append(data)
    				c+=1
    	elif data < 0 :
    		error=0
    		while error<1:
    			print "__Erreur__     Vous devez donner un resultat superieur ou egal a 0   "
    			data=input("->Tapez la moyenne obtenue (exemple : 16.5/20) :   ")
    			if data>1 :
    				error=0
    			else :
    				error=1
    				moyennes.append(data)
    				c+=1
    	else :
    		moyennes.append(data)
    		c+=1
     
     
     
     
    #-------------------------------CALCUL DE LA MOYENNE GENERALE------------------------
    lon=len(moyennes)
    c=0
    bignote=0
    while c<lon :
    	bignote=moyennes[c]+bignote
    	c=c+1
    bignote=bignote-(lon*0.01)
    finale = bignote/(lon)
    print "\n"
    print "L'etape suivante va vous permettre de choisir le type de moyenne que vous voulez. Si vous la desirez en pourcentage, tapez P . Si vous la desirez sous forme d'une fraction (exemple : 15.2/20), tapez F."
    print "\n"
    t_moy=raw_input("Quel est votre choix ?   ")
    error=0
    if t_moy == "P" :
    	moy = finale * 100
    	div="%"
    	print "\n"
    	print "Votre moyenne est de :          ",moy,div
    elif t_moy == "F" :
    	div = input("Quel est le nombre que vous souhaitez comme denominateur ?   ")
    	moy = div * finale
    	deno=str(div)
    	div="/"+deno
    	print "\n"
    	print "Votre moyenne est de :          ",moy,div
    else :
    	while error<1 :
    		print "Vous avez commis une erreur. Refaites un choix en prenant compte des majuscules :   "
    		error=0
    		t_moy=raw_input("Quel est votre choix ?   ")
    		if t_moy == "P" :
    			moy = finale * 100
    			error = 1
    			div="%"
    			print "\n"
    			print "Votre moyenne est de :          ",moy,div
    		elif t_moy == "F" :
    			div = input("Quel est le nombre que vous souhaitez comme denominateur ?   ")
    			moy = div * finale
    			error = 1
    			deno=str(div)
    			div="/"+deno
    			print "Votre moyenne est de :          ",moy,div
    Voilà. Bon soyez sympa dans les critiques, c'est mon premier programme complexe

    Si vous faites un copier coller du code puis que vous l'exécutez, vous remarquerez que la moyenne générale sera toujours égale à 0 :s . Je sais pourquoi, la variable data n'est pas une float. Comment faire pour avoir une moyenne sil vous plait ?


    Merci à tous ceux qui liront au moins mon code pour le critiquer

  2. #2
    Membre à l'essai
    Profil pro
    Lycéen
    Inscrit en
    Mars 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2006
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    arf le forum gère pas les indentations :s

  3. #3
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    Citation Envoyé par NeuroGen
    arf le forum gère pas les indentations :s
    Si, mais il faut utiliser les balises "Code"

    Pour le problème des flottants, si tu travaille que sur des entiers, tes divisions seront des divisions entières (donc pas de chiffre après la virgule).
    Par contre, si un de tes nombres est un flottant, tout les résultats seront des flottants.
    Donc quand c'est nécessaire, tu peux forcer la machine a comprendre ton nombre en tant que flottant dans les calculs genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    moyenne = float(totalnotes) / nbnotes

  4. #4
    Membre à l'essai
    Profil pro
    Lycéen
    Inscrit en
    Mars 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2006
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Ah oui ok j'y ai pas pensé !

    Merci infiniment

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Upload] problème incompréhensible
    Par xdoreau dans le forum Langage
    Réponses: 12
    Dernier message: 15/05/2007, 14h53
  2. Réponses: 4
    Dernier message: 25/09/2006, 14h57
  3. [Vba-E] Problème incompréhensible
    Par antoinelavigne dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 16/06/2006, 14h47
  4. Problème incompréhensible! Fichier + liste
    Par djsbens dans le forum C
    Réponses: 2
    Dernier message: 07/12/2005, 00h30
  5. Problème incompréhensible
    Par bugalood dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2005, 11h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo