Votre avis sur mon programme

Fermé
Thomass04 Messages postés 2 Date d'inscription mardi 23 mai 2017 Statut Membre Dernière intervention 23 mai 2017 - Modifié le 23 mai 2017 à 10:35
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 - 23 mai 2017 à 13:13
Bonjour,
Je suis en terminale S spé ISN et j'ai décider de faire un programme "générateur de calcul mental" comme projet.
Je voulais avoir votre avis sur les amélioration possibles
Merci

Le programme :


#**********Import**********#

from random import *
from random import choice
import time
from math import *
from math import sqrt
from fractions import Fraction


#********Definition des fonctions********#

def vrai():
    t=randrange(0,6)
    bon=["Bravo", "Félicitations !", "Fantastique !", "C'est la bonne réponce !", "Exactement !", "Parfait !"]
    print(bon[t])

def faux():
    t=randrange(0,6)
    mauvais=["Faux", "C'est la mauvaise réponce", "Incorrect", "Ce n'est pas le résultat attendu", "Oups, tu t'es trompé.", "Non !"]
    print(mauvais[t])
    
#**********Boucle principale**********#

score=0       
print("Bonjour, bienvenue dans ce générateur de calcul mental.")
print("En quel classe êtes vous ? (Sixième = 6, Cinquième = 5 ... Première = 1)")
try:
    classe=int(input("Je suis en "))

    if classe==6:                                       #************SIXIEME************#
        print("C'est parti!")
        print("Commençons par des additions")
        debut = time.time()
        print("")
        
        a=randrange(1,10)                                           #addition
        b=randrange(1,10)
        c=a+b
        print(a, "+", b, end=" ")
        try:
            resultat=int(input("= "))
            if resultat==c:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",c)
        except:
            faux()
            print("Le bon résultat était",c)
            
        print("")
        
        a=randrange(1,10)                                           #addition
        b=randrange(1,100)
        c=a+b
        print(a, "+", b, end=" ")
        try:
            resultat=int(input("= "))
            if resultat==c:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",c)
        except:
            faux()
            print("Le bon résultat était",c)

        print("")
        
        a=randrange(1,100)                                           #addition
        b=randrange(1,100)
        c=a+b
        print(a, "+", b, end=" ")
        try:
            resultat=int(input("= "))
            if resultat==c:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",c)
        except:
            faux()
            print("Le bon résultat était",c)
            
        print("")
        
        a=randrange(1,10)                                           #soustraction
        b=randrange(1,100)
        c=a+b
        print(c, "-", a, end=" ")
        try:
            resultat=int(input("= "))
            if resultat==b:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",b)
        except:
            faux()
            print("Le bon résultat était",b)

        print("")
        
        a=randrange(1,10)                                           #soustraction
        b=randrange(1,10)
        c=a+b
        print(c, "-", a, end=" ")
        try:
            resultat=int(input("= "))
            if resultat==b:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",b)
        except:
            faux()
            print("Le bon résultat était",b)

        print("Tu as fait la moitié !")

        print("")
        
        a=randrange(1,100)                                           #soustraction
        b=randrange(1,100)
        c=a+b
        print(c, "-", a, end=" ")
        try:
            resultat=int(input("= "))
            if resultat==b:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",b)
        except:
            faux()
            print("Le bon résultat était",b)

        print("")
        
        a=randrange(1,10)                                           #multiplication
        b=randrange(1,5)
        c=a*b
        print(a, "*", b, end=" ")
        try:
            resultat=int(input("= "))
            if resultat==c:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",c)
        except:
            faux()
            print("Le bon résultat était",c)

        print("")
        
        a=randrange(1,10)                                           #multiplication
        b=randrange(1,10)
        c=a*b
        print(a, "*", b, end=" ")
        try:
            resultat=int(input("= "))
            if resultat==c:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",c)
        except:
            faux()
            print("Le bon résultat était",c)

        print("")

        a=randrange(1,10)                                           #division
        b=randrange(1,5)
        c=a*b
        print(c, "/", a, end=" ")
        try:
            resultat=int(input("= "))
            if resultat==b:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",b)
        except:
            faux()
            print("Le bon résultat était",b)

        print("")    

        a=randrange(1,10)                                           #division
        b=randrange(1,10)
        c=a*b
        print(c, "/", a, end=" ")
        try:
            resultat=int(input("= "))
            if resultat==b:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",b)
        except:
            faux()
            print("Le bon résultat était",b)

        print("")
        print("C'est fini !")
        fin = time.time()                                           #Temps
        temps=fin-debut
        time=ceil(temps)
        tiempo=time
        if time<60:                                                 #Affichage du temps
            print("Tu as pris", time, "secondes")
        else :
            hora=0
            while time>=60:
                time=time-60
                hora=hora+1
            print("Tu as pris", hora, "minute(s) et", time, "seconde(s)")
        if tiempo>180:                                              #Perte de points si plus de 3 minutes 
            tiempo=tiempo-180
            tiempo=tiempo/15
            tiempo=ceil(tiempo)
            score=score-tiempo
            print("Tu as pris plus de 3 minutes tu a donc perdu des points")
        print("Ton score est de :", score, "/10")                   #Affichage du score et de l'appréciation 
        if score==10:
            print("parfait !")
        if score==9:
            print("Presque parfait !")
        if score==8:
            print("Encore un petit effort !")
        if score==7:
            print("C'est une bonne note tu y est presque")
        if score==6:
            print("Plus de la moyenne, peut faire mieux. ")
        if score==5:
            print("La moyenne, tu peut faire mieux!")
        if score==4:
            print("Dommage c'est presque la moyenne")
        if score==3:
            print("Révise plus et tu y arrivera !")
        if score<3:
            print("Va falloir réviser...")

    if classe==5:                                       #************CINQUIEME************#
        print("C'est parti !")
        debut = time.time()
        print("")
        
        a=randrange(1,100)                                           #addition
        b=randrange(1,1000)
        c=a+b
        print(a, "+", b, end=" ")
        try:
            resultat=int(input("= "))
            if resultat==c:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",c)
        except:
            faux()
            print("Le bon résultat était",c)

        print("")

        a=randrange(1,100)                                           #soustraction
        b=randrange(1,100)
        c=a+b
        print(c, "-", a, end=" ")
        try:
            resultat=int(input("= "))
            if resultat==b:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",b)
        except:
            faux()
            print("Le bon résultat était",b)

        print("")

        a=randrange(1,10)                                           #multiplication
        b=randrange(1,10)
        c=a*b
        print(a, "*", b, end=" ")
        try:
            resultat=int(input("= "))
            if resultat==c:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",c)
        except:
            faux()
            print("Le bon résultat était",c)

        print("")

        a=randrange(1,10)                                           #division
        b=randrange(1,10)
        c=a*b
        print(c, "/", a, end=" ")
        try:
            resultat=int(input("= "))
            if resultat==b:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",b)
        except:
            faux()
            print("Le bon résultat était",b)

        print("")
            
        a=randrange(1,10)                                           #distributivité
        b=randrange(1,10)
        k=randrange(1,10)#facteur
        c=(k*a)+(k*b)
        print(k,"* (", a, "+", b, ")", end=" ")
        try:
            resultat=int(input("= "))
            if resultat==c:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",c)
        except:
            faux()
            print("Le bon résultat était",c)
            
        print("")
        print("Tu as fait la moitié !")
        print("")
        
        a=randrange(1,10)                                           #distributivité
        b=randrange(1,10)
        k=randrange(1,10)#facteur
        c=(k*a)-(k*b)
        print(k,"* (", a, "-", b, ")", end=" ")
        try:
            resultat=int(input("= "))
            if resultat==c:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",c)
        except:
            faux()
            print("Le bon résultat était",c)

        print("")

        a=randrange(2,11)                                           #aire carrée
        c=a*a
        print("Quel est l'aire d'un carrée de coté", a, " ?", end=" ")
        try:
            resultat=int(input("= "))
            if resultat==c:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",c)
        except:
            faux()
            print("Le bon résultat était",c)

        print("")
       
        a=randrange(1,10)                                           #aire rectangle
        b=randrange(1,10)
        c=a*b
        print("Quel est l'aire d'un rectangle de coté", a, "et", b, " ?", end=" ")
        try:
            resultat=int(input("= "))
            if resultat==c:
                  vrai()
                  score=score+1
            else:
                faux()
                print("Le bon résultat était",c)
        except:
            faux()
            print("Le bon résultat était",c)

        print("")

        x=randrange(1,10)                                           #aire triangle
        h=randrange(1,10)#hauteur
        a=h*x
        b=(2*a)/h#base
        b=ceil(b)
        print("Quel est l'aire d'un triangle ABC de base", b, "et de hauteur", h, " ?", end=" ")
        try:
            resultat=int(input("= "))
            if resultat==a:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",a)
        except:
            faux()
            print("Le bon résultat était",a)

        print("")

        x=randrange(1,10)                                           #aire losange
        h=randrange(1,10)#hauteur
        a=h*x
        b=(2*a)/h#base
        b=ceil(b)
        print("Quel est l'aire d'un losange de grande diagonale ", b, "et de petite diagonale", h, " ?", end=" ")
        try:
            resultat=int(input("= "))
            if resultat==a:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",a)
        except:
            faux()
            print("Le bon résultat était",a)

        print("")
        print("C'est fini !")
        fin = time.time()                                           #Temps
        temps=fin-debut
        time=ceil(temps)
        tiempo=time
        if time<60:                                                 #Affichage du temps
            print("Tu as pris", time, "secondes")
        else :
            hora=0
            while time>=60:
                time=time-60
                hora=hora+1
            print("Tu as pris", hora, "minute(s) et", time, "seconde(s)")
        if tiempo>180:                                              #Perte de points si plus de 3 minutes 
            tiempo=tiempo-180
            tiempo=tiempo/15
            tiempo=ceil(tiempo)
            score=score-tiempo
            print("Tu as pris plus de 3 minutes tu a donc perdu des points")
        print("Ton score est de :", score, "/10")                   #Affichage du score et de l'appréciation 
        if score==10:
            print("parfait !")
        if score==9:
            print("Presque parfait !")
        if score==8:
            print("Encore un petit effort !")
        if score==7:
            print("C'est une bonne note tu y est presque")
        if score==6:
            print("Plus de la moyenne, peut faire mieux. ")
        if score==5:
            print("La moyenne, tu peut faire mieux!")
        if score==4:
            print("Dommage c'est presque la moyenne")
        if score==3:
            print("Révise plus et tu y arrivera !")
        if score<3:
            print("Va falloir réviser...")

    if classe==4:                                       #************QUATRIEME************#
        print("C'est parti !")
        debut = time.time()
        print("")
        
        n=randrange(1,4)                                           #Pythagore
        a=2*n
        b=(n*n)-1
        c=(n*n)+1
        print("Dans un triangle rectangle ABC, AB =", a,"et BC = ", b, ",trouver l'hypoténuse AC")
        try:
            resultat=int(input("L'hypoténuse AC vaut  "))
            if resultat==c:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",c)
        except:
            faux()
            print("Le bon résultat était",c)

        print("")

        x=randrange(1,5)                                           #Equation                                        
        b=randrange(2,5)
        c=x*b
        print("Trouver x dans l'équation", b, "x", "=", c, end=" ")
        try:
            resultat=int(input("Dans cette équation x vaut : "))
            if resultat==x:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",x)
        except:
            faux()
            print("Le bon résultat était",x)

        print("")

        x=randrange(5,10)                                           #Equation                                        
        b=randrange(5,11)
        c=x*b
        print("Trouver x dans l'équation", b, "x", "=", c, end=" ")
        try:
            resultat=int(input("Dans cette équation x vaut : "))
            if resultat==x:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",x)
        except:
            faux()
            print("Le bon résultat était",x)

        print("")

        a=randrange(1,100)                                           #soustraction négative
        b=randrange(1,100)
        c=a+b
        b=-b
        print(a, "-", c, end=" ")
        try:
            resultat=int(input("= "))
            if resultat==b:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",b)
        except:
            faux()
            print("Le bon résultat était",b)

        print("")

        a=randrange(-10,1)                                           #multiplication négative
        b=randrange(1,10)
        c=a*b
        print(a, "*", b, end=" ")
        try:
            resultat=int(input("= "))
            if resultat==c:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",c)
        except:
            faux()
            print("Le bon résultat était",c)

        print("")

        a=randrange(1,10)                                           #division négative
        b=randrange(-10,-1)
        c=a*b
        print(c, "/", a, end=" ")
        try:
            resultat=int(input("= "))
            if resultat==b:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",b)
        except:
            faux()
            print("Le bon résultat était",b)

        print("")
            
        a=randrange(1,5)                                           #règle priorité 
        b=randrange(2,5)
        c=randrange(1,5)
        d=randrange(2,5)
        e=(b*c)+a+d
        print("Trouver x dans l'équation x=", a, "+", b, "*", c, "+", d)
        try:
            resultat=int(input("x = "))
            if resultat==e:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",e)
        except:
            faux()
            print("Le bon résultat était",e)

        print("")
            
        f=(a+b)*(c+d)                                             #règle priorité 
        print("Trouver x dans l'équation x= (", a, "+", b, ") * (", c, "+", d, ")")
        try:
            resultat=int(input("x = "))
            if resultat==f:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",f)
        except:
            faux()
            print("Le bon résultat était",f)

        print("")

        a=randrange(1,7)                                           #écriture scientifique
        einde = time.time()
        tijd = einde-debut#temps : chiffre après virgules
        valeur = round(tijd,1)
        if valeurs<10:
            valeurs=valeurs
        if 10<valeur<100:
            valeurs=valeurs/10
        else:
            valeur=valeur/100
        b= valeur*(10**a)
        b=round(b, a)#valeur à trouver
        b=round(b, a)
        print("Ecrire de manière scientifique", b)
        try:
            print(valeur, "* 10**",)
            resultat=int(input())
            if resultat==a:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",a)
        except:
            faux()
            print("Le bon résultat était",a)

        print("")

        a=randrange(1,7)                                           #écriture scientifique
        ende = time.time()
        zeit = ende-debut#temps : chiffre après virgules
        valeurs = round(zeit,1)
        if valeurs<10:
            valeurs=valeurs
        if 10<valeur<100:
            valeurs=valeurs/10
        else:
            valeur=valeur/100
        b=round(b, a)
        a=-a
        print("Ecrire de manière scientifique", b)
        try:
            print(valeurs, "* 10**",)
            resultat=int(input(""))
            if resultat==a:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",a)
        except:
            faux()
            print("Le bon résultat était",a)

        print("")
        print("C'est fini !")
        fin = time.time()                                           #Temps
        temps=fin-debut
        time=ceil(temps)
        tiempo=time
        if time<60:                                                 #Affichage du temps
            print("Tu as pris", time, "secondes")
        else :
            hora=0
            while time>=60:
                time=time-60
                hora=hora+1
            print("Tu as pris", hora, "minute(s) et", time, "seconde(s)")
        if tiempo>180:                                              #Perte de points si plus de 3 minutes 
            tiempo=tiempo-180
            tiempo=tiempo/15
            tiempo=ceil(tiempo)
            score=score-tiempo
            print("Tu as pris plus de 3 minutes tu a donc perdu des points")
        print("Ton score est de :", score, "/10")                   #Affichage du score et de l'appréciation 
        if score==10:
            print("parfait !")
        if score==9:
            print("Presque parfait !")
        if score==8:
            print("Encore un petit effort !")
        if score==7:
            print("C'est une bonne note tu y est presque")
        if score==6:
            print("Plus de la moyenne, peut faire mieux. ")
        if score==5:
            print("La moyenne, tu peut faire mieux!")
        if score==4:
            print("Dommage c'est presque la moyenne")
        if score==3:
            print("Révise plus et tu y arrivera !")
        if score<3:
            print("Va falloir réviser...")

            
    if classe==3:                                       #************TROISIEME************#
        print("C'est parti !")
        debut = time.time()
        print("")

        a=randrange(1,7)                                           #Identité remarquable addition 
        b=randrange(1,7)
        iD= a**2 + 2*a*b + b**2
        print("A =(", a," + ", b,")**2")
        try:
            resultat=int(input("A = "))
            if resultat==iD:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",iD)
        except:
            faux()
            print("Le bon résultat était",iD)

        print("")

        a=randrange(1,7)                                           #Identité remarquable soustraction 
        b=randrange(1,7)
        iD= a**2 - 2*a*b + b**2
        print("B = (", a," - ", b,")**2")
        try:
            resultat=int(input("B = "))
            if resultat==iD:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",iD)
        except:
            faux()
            print("Le bon résultat était",iD)

        print("")

        a=randrange(1,10)                                           #Identité remarquable addition & soustraction 
        b=randrange(1,10)
        iD= a**2 - b**2
        print("C = (", a," + ", b,")*(", a," - ", b,")")
        try:
            resultat=int(input("C = "))
            if resultat==iD:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",iD)
        except:
            faux()
            print("Le bon résultat était",iD)

        print("")

        a=randrange(1,7)                                           #écriture scientifique
        einde = time.time()
        tijd = einde-debut
        valeur = round(tijd,1)
        b= valeur*(10**a)#temps : chiffre après virgules
        b=round(b,a)
        print("Ecrire de manière scientifique", b)
        try:
            print(valeur, "* 10**",)
            resultat=int(input())
            if resultat==a:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",a)
        except:
            faux()
            print("Le bon résultat était",a)

        print("")
        
        a=randrange(1,10)                                           #Fonction affine
        b=randrange(1,100)
        x=randrange(1,10)
        F=a*x+b
        print("L'image de", x, "par la fonction F, avec F(x) = ", a, "x +", b)
        try:
            resultat=int(input("est :"))
            if resultat==F:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",F)
        except:
            faux()
            print("Le bon résultat était",F)

        print("")

        a=randrange(1,10)                                           #Polynome second degré
        b=randrange(1,100)
        x=randrange(1,10)
        G=x**2+a*x+b
        print("L'image de", x, "par la fonction G, avec G(x) =  x**2 +", a, "x +", b)
        try:
            resultat=int(input("est :"))
            if resultat==G:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",G)
        except:
            faux()
            print("Le bon résultat était",G)

        print("")

        a=randrange(1,10)                                           #Antécédent
        b=randrange(1,10)
        c=randrange(1,10)
        f=(a*b)-c
        print("L'unique antécédent de", f, "par la fonction f, avec f(x)=", b, "* x -", c, "est")
        try:
            resultat=int(input(":"))
            if resultat==a:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",a)
        except:
            faux()
            print("Le bon résultat était",a)

        print("")

        a=randrange(1,10)                                           #Antécédent
        b=randrange(1,10)
        c=randrange(1,10)
        f=(a*b)-c
        print("L'unique antécédent de", f, "par la fonction f, avec f(x)=", b, "* x -", c, "est")
        try:
            resultat=int(input(":"))
            if resultat==a:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",a)
        except:
            faux()
            print("Le bon résultat était",a)

        print("")

        a=randrange(1,10)#PGCD                                           #PGCD
        b=randrange(1,5)
        c=randrange(6,10)
        d=a*b
        e=a*c
        print("Trouver PGCD(", d, ":", e, ")")
        try:
            resultat=int(input("Le diviseur commun est "))
            if resultat==a:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",a)
        except:
            faux()
            print("Le bon résultat était",a)

        print("")

        a=randrange(1,10)#PGCD                                           #PGCD
        b=randrange(1,5)
        c=randrange(6,10)
        d=a*b
        e=a*c
        print("Trouver PGCD(", d, ":", e, ")")
        try:
            resultat=int(input("Le diviseur commun est "))
            if resultat==a:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",a)
        except:
            faux()
            print("Le bon résultat était",a)

        print("")
        print("C'est fini !")
        fin = time.time()                                           #Temps
        temps=fin-debut
        time=ceil(temps)
        tiempo=time
        if time<60:                                                 #Affichage du temps
            print("Tu as pris", time, "secondes")
        else :
            hora=0
            while time>=60:
                time=time-60
                hora=hora+1
            print("Tu as pris", hora, "minute(s) et", time, "seconde(s)")
        if tiempo>180:                                              #Perte de points si plus de 3 minutes 
            tiempo=tiempo-180
            tiempo=tiempo/15
            tiempo=ceil(tiempo)
            score=score-tiempo
            print("Tu as pris plus de 3 minutes tu a donc perdu des points")
        print("Ton score est de :", score, "/10")                   #Affichage du score et de l'appréciation 
        if score==10:
            print("parfait !")
        if score==9:
            print("Presque parfait !")
        if score==8:
            print("Encore un petit effort !")
        if score==7:
            print("C'est une bonne note tu y est presque")
        if score==6:
            print("Plus de la moyenne, peut faire mieux. ")
        if score==5:
            print("La moyenne, tu peut faire mieux!")
        if score==4:
            print("Dommage c'est presque la moyenne")
        if score==3:
            print("Révise plus et tu y arrivera !")
        if score<3:
            print("Va falloir réviser...")

    if classe==2:                                       #************SECONDE************#
        print("C'est parti !")
        debut = time.time()
        print("")

        a=randrange(1,10)#PGCD                                      #PGCD
        b=randrange(1,5)
        c=randrange(6,10)
        d=a*b
        e=a*c
        print("Trouver PGCD(", d, ":", e, ")")
        try:
            resultat=int(input("Le diviseur commun est "))
            if resultat==a:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",a)
        except:
            faux()
            print("Le bon résultat était",a)

        print("")
            
        a=randrange(1,100) #P(A u B)                                 #Proba
        b=randrange(1,a)#P(B)
        c=randrange(1,b)#P(A n B)
        a=a/100
        b=b/100
        c=c/100
        d=(a-b)+c
        d=round(d,2)
        print("P(A u B)=", a, ", P(A n B) =", c, "P(B)=", b)
        print("Calculer P(A)")
        try:
            resultat=float(input("P(A) ="))
            if resultat==d:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",d)
        except:
            faux()
            print("Le bon résultat était",d)

        print("")

        a=randrange(1,100) #P(A u B)                                 #Proba
        b=randrange(1,a)#P(B)
        c=randrange(1,b)#P(A n B)
        a=a/100
        b=b/100
        c=c/100
        d=(a-b)+c
        d=round(d,2)#P(A)
        print("P(A)=", d, ", P(B) =", b, "P(A u B)=", a)
        print("Calculer P(A n B)")
        try:
            resultat=float(input("P(A n B) ="))
            if resultat==c:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",c)
        except:
            faux()
            print("Le bon résultat était",c)

        print("")

        a=randrange(1,10)                                           #Equation de droite, trouver m
        b=1+a
        c=randrange(1,10)
        d=randrange(1,10)
        print("A(",a, ",", b, ") et B(",c , ",", d, ")")
        print("Calculer le coefficient directeur m de la droite (AB)")
        m=(d-c)/(b-a)
        m=ceil(m)
        try:
            resultat=int(input("m = "))
            if resultat==m:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",m)
        except:
            faux()
            print("Le bon résultat était",m)

        print("")


        a=randrange(5,10)                                           #Part en pourcetage 
        b=randrange(1,3)
        c=a*(10**b)
        d=randrange(5,10)
        e=c*d
        f=(c*100)/e
        f=ceil(f)
        print("Une sous-population P' d’une population P compte", c, "individus. P' représente", d, "% de la population P. ")
        print("Calculez l’effectif total T de la population P.")
        try:
            resultat=int(input("T = "))
            if resultat==e:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",e)
        except:
            faux()
            print("Le bon résultat était",e)

        print("")
        
        if m==0:                                                      #Equation de droite, trouver p
            e=randrange(1,10)
            f=randrange(1,10)#pour éviter la division par zéro
            g=f*e
            m=1
            print("Determiner l’ordonnée à l’origine p de la droite CD, sachant que C(", e, ";", g, ")")
            print("Et que m=1")
            p=g/(e*m)
            try:
                resultat=int(input("p = "))
                if resultat==p:
                    vrai()
                    score=score+1
                else:
                    faux()
                    print("Le bon résultat était",p)
            except:
                faux()
                print("Le bon résultat était",p)
            
        else:
            m=ceil(m) 
            print("Le coefficient directeur est donc", m)
            p=b/(a*m)
            p=ceil(p)
            print("Determiner l’ordonnée à l’origine p de la droite AB ")
            print("(arrondir à l'unité si nécessaire)")
            try:
                resultat=int(input("p = "))
                if resultat==p:
                    vrai()
                    score=score+1
                else:
                    faux()
                    print("Le bon résultat était",p)
            except:
                faux()
                print("Le bon résultat était",p)

        print("")

        a=randrange(1,10)                                           #Colinéarité de vecteur 
        b=randrange(1,10)
        c=randrange(2,5)
        d=a*c
        e=b*c
        print("Les vecteurs U(", a, ",", b, ") et V(",d , ",", e, ") sont colinéaires ?")
        try:
            resultat=int(input("vrai ou faux (vrai = 0 et faux = 1) : "))
            if resultat==0:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était vrai (0)")
        except:
            faux()
            print("Le bon résultat était vrai (0)")
        
        
        print("")
        print("C'est fini !")
        fin = time.time()                                           #Temps
        temps=fin-debut
        time=ceil(temps)
        tiempo=time
        if time<60:                                                 #Affichage du temps
            print("Tu as pris", time, "secondes")
        else :
            hora=0
            while time>=60:
                time=time-60
                hora=hora+1
            print("Tu as pris", hora, "minute(s) et", time, "seconde(s)")
        if tiempo>180:                                              #Perte de points si plus de 3 minutes 
            tiempo=tiempo-180
            tiempo=tiempo/15
            tiempo=ceil(tiempo)
            score=score-tiempo
            print("Tu as pris plus de 3 minutes tu a donc perdu des points")
        print("Ton score est de :", score, "/10")                   #Affichage du score et de l'appréciation 
        if score==10:
            print("parfait !")
        if score==9:
            print("Presque parfait !")
        if score==8:
            print("Encore un petit effort !")
        if score==7:
            print("C'est une bonne note tu y est presque")
        if score==6:
            print("Plus de la moyenne, peut faire mieux. ")
        if score==5:
            print("La moyenne, tu peut faire mieux!")
        if score==4:
            print("Dommage c'est presque la moyenne")
        if score==3:
            print("Révise plus et tu y arrivera !")
        if score<3:
            print("Va falloir réviser...")
                    
    if classe==1:                                       #************PREMIERE************#
        print("C'est parti !")
        debut = time.time()
        print("")
        
        x=randrange(1,10)                                           #Suite arithmétique
        r=randrange(1,10)
        n=randrange(1,10)
        c=x+(n*r)
        print("(Un) désigne une suite arithmétique tel que : Un =",r ,"n + ", x,". Calculez U",n)
        try:
            resultat=int(input("Le resultat est : "))
            if resultat==c:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",c)
        except:
            faux()
            print("Le bon résultat était",c)

        print("")
            
        x=randrange(1,10)                                           #Suite arithmétique
        r=randrange(1,10)
        n=randrange(1,10)
        print("(Un) désigne une suite arithmétique de premier terme U0 =", x, "et de raison",r)
        print("Calcluer U",n)
        c=x
        q=0
        while q<n:
            c=c+r
            q=q+1
        try:
            resultat=int(input("Le resultat est : "))
            if resultat==c:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",c)
        except:
            faux()
            print("Le bon résultat était",c)

        print("")
        
        x=randrange(1,5)                                           #Suite géométrique
        r=randrange(1,3)
        n=randrange(1,5)
        print("Soit (Un) une suite géométrique telle que U0 =", x,"et sa raison est égale à", r)
        print("Calcluer U",n)
        c=x
        q=0
        while q<n:
            c=c*r
            q=q+1
        try:
            resultat=int(input("Le resultat est : "))
            if resultat==c:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",c)
        except:
            faux()
            print("Le bon résultat était",c)

        print("")

        x=randrange(1,5)                                           #Suite géométrique
        r=randrange(1,3)
        n=randrange(1,5)
        print("Soit (Un) une suite géométrique telle que U0 =", x,"et sa raison est égale à", r)
        print("Calcluer U",n)
        c=x
        q=0
        while q<n:
            c=c*r
            q=q+1
        try:
            resultat=int(input("Le resultat est : "))
            if resultat==c:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",c)
        except:
            faux()
            print("Le bon résultat était",c)

        print("")

        a=randrange(1,7)                                           #Discriminant 
        b=randrange(1,10)
        c=randrange(1,5)
        d=(b*b)-(4*a*c) 
        print("F(x)= ",a,"x**2 +", b, "x +", c, "admet un discriminant D")
        try:
            resultat=int(input("D = "))
            if resultat==d:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",d)
        except:
            faux()
            print("Le bon résultat était",d)

        print("")

        if d>0:                                                     #Nombre de solution fonction
            s=2
        if d==0:
            s=1
        if d<0:
            s=0
        print("Combien de solution S l'équation précedente a t-elle dans R ?")
        try:
            resultat=int(input("S = "))
            if resultat==s:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",s)
        except:
            faux()
            print("Le bon résultat était",s)

        print("")

        a=randrange(1,10)                                           #Parabole
        b=randrange(1,10)
        c=randrange(1,10)
        d=randrange(0,2)
        if d==0:
            a=a*-1
        else:
            a=a
        print("F(x)= ",a,"x**2 +", b, "x +", c, "admet C pour représentation graphique")
        print("La courbe C est une parabole, admet-elle un minimum ou un maximum ?")
        print("(minimum = 0 et maximum = 1)")
        try:
            resultat=int(input("La parabole C admet un "))
            if resultat==d:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",d)
        except:
            faux()
            print("Le bon résultat était",d)

        print("")

        print("Calculer l'abscisse du sommet S de cette parabole")  #Sommet de la parabole
        a=2*a
        b=-b
        p=str(Fraction(b, a))
        try:
            resultat=str(input("S = "))
            if resultat==p:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",p)
        except:
            faux()
            print("Le bon résultat était",p)

        print("")
        
        a=randrange(1,10)                                           #Parabole
        b=randrange(1,10)
        c=randrange(1,10)
        d=randrange(0,2)
        if d==0:
            a=a*-1
        else:
            a=a
        print("F(x)= ",a,"x**2 +", b, "x +", c, "admet C pour représentation graphique")
        print("La courbe C est une parabole, admet-elle un minimum ou un maximum ?")
        print("(minimum = 0 et maximum = 1)")
        try:
            resultat=int(input("La parabole C admet un "))
            if resultat==d:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",d)
        except:
            faux()
            print("Le bon résultat était",d)

        print("")

        print("Calculer l'abscisse du sommet S de cette parabole")  #Sommet de la parabole
        a=2*a
        b=-b
        p=str(Fraction(b, a))
        try:
            resultat=str(input("S = "))
            if resultat==p:
                vrai()
                score=score+1
            else:
                faux()
                print("Le bon résultat était",p)
        except:
            faux()
            print("Le bon résultat était",p)

        print("") 
        print("C'est fini !")
        fin = time.time()                                           #Temps
        temps=fin-debut
        time=ceil(temps)
        tiempo=time
        if time<60:                                                 #Affichage du temps
            print("Tu as pris", time, "secondes")
        else :
            hora=0
            while time>=60:
                time=time-60
                hora=hora+1
            print("Tu as pris", hora, "minute(s) et", time, "seconde(s)")
        if tiempo>180:                                              #Perte de points si plus de 3 minutes 
            tiempo=tiempo-180
            tiempo=tiempo/15
            tiempo=ceil(tiempo)
            score=score-tiempo
            print("Tu as pris plus de 3 minutes tu a donc perdu des points")
        print("Ton score est de :", score, "/10")                   #Affichage du score et de l'appréciation
        if score==10:
            print("parfait !")
        if score==9:
            print("Presque parfait !")
        if score==8:
            print("Encore un petit effort !")
        if score==7:
            print("C'est une bonne note tu y est presque")
        if score==6:
            print("Plus de la moyenne, peut faire mieux. ")
        if score==5:
            print("La moyenne, tu peut faire mieux!")
        if score==4:
            print("Dommage c'est presque la moyenne")
        if score==3:
            print("Révise plus et tu y arrivera !")
        if score<3:
            print("Va falloir réviser...")
                

    if classe not in [0,1,2,2,3,4,5,6]:
        print("Cette classe n'existe pas !")
        
except:
    print("Ce n'est pas une classe !")


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.






2 réponses

Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
23 mai 2017 à 11:38
Bonjour,

Tu as beaucoup de répétition, que tu pourrais factoriser à l'aide de fonctions et de boucles…
0
Thomass04 Messages postés 2 Date d'inscription mardi 23 mai 2017 Statut Membre Dernière intervention 23 mai 2017
23 mai 2017 à 11:42
Bonjour,

Merci de ta réponse
Au début mon programme était comme tu le propose mais pour pouvoir avoir le score de l'utilisateur j'ai du faire ainsi.
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11 > Thomass04 Messages postés 2 Date d'inscription mardi 23 mai 2017 Statut Membre Dernière intervention 23 mai 2017
Modifié le 23 mai 2017 à 13:15
Thomas, je n'ai pas compris…

Comme dit tu peux tout factoriser, à l'aide de fonction boucles et listes/tuples.

L'idéal c'est même de faire une class avec.

J'ai l'impression que ton code on peut le diviser par 10, ce qui serai beaucoup plus facile à lire !

Exemple :
def addition(chiffre):
    a = randrange(1, chiffre)
    b = randrange(1, chiffre)
    c = a + b
    
    print(a, '+', b, end = ' ')
    
    try:
        resultat = int(input('= '))
        
        if resultat == c:
            vrai()
            score = score + 1
        else:
            faux()
            
            print('Le bon résultat était', c)
    except:
        faux()
        
        print('Le bon résultat était', c)
    
    print('')


Puis tu refactorises de nouveau pour addition, soustraction etc

Pour tes conditions tu fais une boucle à l'aide de tuples et du mot-clé « break »

Autre point au niveau des imports, il ne faut jamais utiliser le joker « * ».
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
23 mai 2017 à 11:52
Idéalement il aura fallu utiliser des tableaux pour regrouper tes questions/réponses et effectivement, passer par des boucles, ton code aurait été énormément plus court.
Ca pourrait te permettre de rajouter facilement des questions et même de pouvoir varier leur ordre. Là si on le fait plusieurs fois, on va rapidement connaitre toutes les questions par cœur ;)

Et sinon les fautes d'orthographes quoi :(
réponse avec un S et les règles de conjugaison niveau primaire ^^
0