Problème programme python en terminale S spé ISN
saogine76
Messages postés
120
Statut
Membre
-
saogine76 Messages postés 120 Statut Membre -
saogine76 Messages postés 120 Statut Membre -
Bonjour, Je suis en Terminale S spé ISN et dans cette spé nous devons ( par groupe de deux ) codé un programme en langage python qui répond à ses critères :
- Utiliser les listes pour réaliser le projet
- Elaborer 5 questions successives mélangeant les réponses chiffrée ( nombre ) et écrites (chaine de caractère )
- 1 question doit porter sur les table de multiplication, vous devrez laisser la possibilité a l'expérimentateur de choisir sa table en ( en excluant 1 et 10)
- 1 question sur les capitales de pays, vous devrez accepter toute réponses ( avec ou sans majuscule )
- Donner a la fin du programme le clairement le nombres de bonnes réponses
- Afin que deux personnes utilisant votre programme côte à côte n'aient pas le même énoncé, rendre aléatoire l'ordre des 5 questions.
Voici notre programme :
Donc notre problème vient de la derniere partie ( a partir de else ) souligée ( je crois ) car les questions se lance a l'infini et nous n'avons pas trouvé de solution a ce problème.
Si vous avez des idées pour résoudre ce problème nous sommes preneurs ( même des idées pour améliorer le programme en général.
Nous sommes conscient du fait que notre programme n'exclue pas la table de 1 et 10 ( nous comptons le réglé plus tard )
(on va aussi changer la question 4 ^^)
Nous sollicitons donc principalement votre aides pour la partie "else" qui doit normalement lancé les 5 questions dans un ordre aléatoire sans les répétées.
Voila tout merci d'avance pour votre aide ! :)
- Utiliser les listes pour réaliser le projet
- Elaborer 5 questions successives mélangeant les réponses chiffrée ( nombre ) et écrites (chaine de caractère )
- 1 question doit porter sur les table de multiplication, vous devrez laisser la possibilité a l'expérimentateur de choisir sa table en ( en excluant 1 et 10)
- 1 question sur les capitales de pays, vous devrez accepter toute réponses ( avec ou sans majuscule )
- Donner a la fin du programme le clairement le nombres de bonnes réponses
- Afin que deux personnes utilisant votre programme côte à côte n'aient pas le même énoncé, rendre aléatoire l'ordre des 5 questions.
Voici notre programme :
from random import*
def reponsejuste():
global compteur
compteur = compteur+1
def question1():
pays = ["de la france","de l'espagne","de l'italie","de l'allemagne","du chili"]
capitales= ["paris","madrid","rome","berlin","santiago"]
nombre = randint (0,len(pays)-1)
reponse = input("Quelle est la capitale "+pays[nombre]+"?")
if reponse.lower() == capitales[nombre]:
reponsejuste()
def question2():
nombre = randint (2,9)
table = int(input("Quelle table de multiplication veux tu ?"))
reponse = int(input("Combien font "+str(nombre)+"*"+str(table)+"?"))
if reponse == (nombre*table):
reponsejuste()
def question3():
reponse = input("En quelle annnée a été crée Apple ?")
if reponse == "1976":
reponsejuste()
def question4():
reponse = input("Quel est la hauteur de la Tour Eifel ?(en metres)")
if reponse == "300":
reponsejuste()
def question5():
monument = ["de la Tour Eifel","de la Statue de la libertée","du Big Ben","de la Tour de pise","du Taj Mahal"]
hauteur= [300,93,96,57,73]
nombre = randint (0,len(monument)-1)
reponse = int(input("Quelle est la hauteur" + monument[nombre] + " ( a plus ou moins 10 mètre ) ?"))
if hauteur[nombre]-10 < reponse < hauteur[nombre]+10:
reponsejuste()
compteur = 0
question_tombees = []
liste_question = [question1, question2, question3, question4, question5]
for nombre_questions in range(5):
ordre_question =randint(0,len(liste_question)-1)
if not ordre_question in question_tombees:
question_tombees.append(ordre_question)
liste_question[ordre_question]()
else:
while ordre_question in question_tombees:
ordre_question = randint(0,len(liste_question)-1)
question_tombees.append(ordre_question)
liste_question[ordre_question]()
print("Tu as "+str(compteur)+" bonne(s) réponse(s)")
Donc notre problème vient de la derniere partie ( a partir de else ) souligée ( je crois ) car les questions se lance a l'infini et nous n'avons pas trouvé de solution a ce problème.
Si vous avez des idées pour résoudre ce problème nous sommes preneurs ( même des idées pour améliorer le programme en général.
Nous sommes conscient du fait que notre programme n'exclue pas la table de 1 et 10 ( nous comptons le réglé plus tard )
(on va aussi changer la question 4 ^^)
Nous sollicitons donc principalement votre aides pour la partie "else" qui doit normalement lancé les 5 questions dans un ordre aléatoire sans les répétées.
Voila tout merci d'avance pour votre aide ! :)
A voir également:
- Problème programme python en terminale S spé ISN
- Programme demarrage windows - Guide
- Citizen code python avis - Accueil - Outils
- Mettre en veille un programme - Guide
- Toutes les formules mathématiques terminale pdf - Télécharger - Études & Formations
- Programme word gratuit - Guide