bonjour j'ai 16 ans et je débute en python
pour l'exercice mon programme est en programmation impérative et je dois le convertir en programmation orienté objet, j'ai donc essayé de le faire mais je me suis mélanger les pinceaux et j'arrives pas, le questionnaire marche mais quand je rentre l'index de la bonne réponse ça affiche quand meme "mauvaise réponse"
class Question:
def __init__(self, titre: str, choix : (), bonne_reponse: str):
self.titre = titre
self.choix = choix
self.bonne_reponse = bonne_reponse
def poser(self):
print("QUESTION")
print(" " + self.titre)
for i in range(len(self.choix)):
print(" ", i + 1, "-", self.choix[i])
print()
resultat_response_correcte = False
#self.reponse = demander_reponse_numerique_utlisateur(1, len(self.choix))
if self.choix == Question.demander_reponse_numerique_utlisateur(self):
print("Bonne réponse")
resultat_response_correcte = True
else:
print("Mauvaise réponse")
print()
return resultat_response_correcte
def demander_reponse_numerique_utlisateur(self):
reponse = input("Votre réponse (entre " + str(1) + " et " + str(len(self.choix)) + ") :")
try:
reponse = int(reponse)
if 1 <= reponse <= len(self.choix):
return reponse
print("ERREUR : Vous devez rentrer un nombre entre", 1, "et", len(self.choix))
except:
print("ERREUR : Veuillez rentrer uniquement des chiffres")
return
def lancer_questionnaire(self):
score = 0
for self.question in questionnaire:
if Question.poser:
score += 1
print("Score final :", score, "sur", len(questionnaire))
questionnaire = (
("Quelle est la capitale de la France ?", ("Marseille", "Nice", "Paris", "Nantes", "Lille"), "Paris"),
("Quelle est la capitale de l'Italie ?", ("Rome", "Venise", "Pise", "Florence"), "Rome"),
("Quelle est la capitale de la Belgique ?", ("Anvers", "Bruxelles", "Bruges", "Liège"), "Bruxelles")
)
q1 = Question(titre="Quelle est la capitale de la France ?", choix=("Marseille", "Nice", "Paris", "Nantes", "Lille"), bonne_reponse="Paris")
q1.poser()
pour l'exercice mon programme est en programmation impérative et je dois le convertir en programmation orienté objet, j'ai donc essayé de le faire mais je me suis mélanger les pinceaux et j'arrives pas, le questionnaire marche mais quand je rentre l'index de la bonne réponse ça affiche quand meme "mauvaise réponse"
class Question:
def __init__(self, titre: str, choix : (), bonne_reponse: str):
self.titre = titre
self.choix = choix
self.bonne_reponse = bonne_reponse
def poser(self):
print("QUESTION")
print(" " + self.titre)
for i in range(len(self.choix)):
print(" ", i + 1, "-", self.choix[i])
print()
resultat_response_correcte = False
#self.reponse = demander_reponse_numerique_utlisateur(1, len(self.choix))
if self.choix == Question.demander_reponse_numerique_utlisateur(self):
print("Bonne réponse")
resultat_response_correcte = True
else:
print("Mauvaise réponse")
print()
return resultat_response_correcte
def demander_reponse_numerique_utlisateur(self):
reponse = input("Votre réponse (entre " + str(1) + " et " + str(len(self.choix)) + ") :")
try:
reponse = int(reponse)
if 1 <= reponse <= len(self.choix):
return reponse
print("ERREUR : Vous devez rentrer un nombre entre", 1, "et", len(self.choix))
except:
print("ERREUR : Veuillez rentrer uniquement des chiffres")
return
def lancer_questionnaire(self):
score = 0
for self.question in questionnaire:
if Question.poser:
score += 1
print("Score final :", score, "sur", len(questionnaire))
questionnaire = (
("Quelle est la capitale de la France ?", ("Marseille", "Nice", "Paris", "Nantes", "Lille"), "Paris"),
("Quelle est la capitale de l'Italie ?", ("Rome", "Venise", "Pise", "Florence"), "Rome"),
("Quelle est la capitale de la Belgique ?", ("Anvers", "Bruxelles", "Bruges", "Liège"), "Bruxelles")
)
q1 = Question(titre="Quelle est la capitale de la France ?", choix=("Marseille", "Nice", "Paris", "Nantes", "Lille"), bonne_reponse="Paris")
q1.poser()
super idol
il y a 3 ans
Sponsorisé
Connectez-vous pour masquer les pubsWebmerdia
3 ans
demande a chatgpt
This + il y a que les connerie à l'école qui demande de convertir un programme imperatif en POO
Mon propos est imaginaire et fictif, il n'implique donc aucun fait ou élément réel et toute ressemblance serait fortuite
il y a 3 ans
chatGPT est ton ami
¡Esta serpiente marina MATÓ a un Celestino! https://streamable.com/fmjgjb
il y a 3 ans
Sponsorisé
Connectez-vous pour masquer les pubsThis + il y a que les connerie à l'école qui demande de convertir un programme imperatif en POO
je fais ça surtout pour m'entrainer en python
super idol
il y a 3 ans
This + il y a que les connerie à l'école qui demande de convertir un programme imperatif en POO
Bah c'est bien pour comprendre le concept de POO je trouve
Show me your moves
il y a 3 ans
kev06150
3 ans
Lance toi dans le Javascript c mieux pour le hack
je compte apprendre tous les languages et c'est pas pour le hack
super idol
il y a 3 ans
Xiaorong
3 ans
chatgpt a flop
Il semble que vous ayez fait quelques erreurs lors de la conversion de votre code en programmation orientée objet. Je vais vous proposer une version corrigée de votre code :
```python
class Question:
def __init__(self, titre: str, choix: (), bonne_reponse: str):
self.titre = titre
self.choix = choix
self.bonne_reponse = bonne_reponse
def poser(self):
print("QUESTION")
print(" " + self.titre)
for i in range(len(self.choix)):
print(" ", i + 1, "-", self.choix[i])
print()
reponse = self.demander_reponse_numerique_utlisateur()
if self.choix[reponse - 1] == self.bonne_reponse:
print("Bonne réponse")
return True
else:
print("Mauvaise réponse")
return False
def demander_reponse_numerique_utlisateur(self):
while True:
reponse = input("Votre réponse (entre 1 et " + str(len(self.choix)) + ") :")
try:
reponse = int(reponse)
if 1 <= reponse <= len(self.choix):
return reponse
else:
print("ERREUR : Vous devez rentrer un nombre entre", 1, "et", len(self.choix))
except ValueError:
print("ERREUR : Veuillez rentrer uniquement des chiffres")
def lancer_questionnaire(questionnaire):
score = 0
for question in questionnaire:
if question.poser():
score += 1
print("Score final :", score, "sur", len(questionnaire))
questionnaire = [
Question("Quelle est la capitale de la France ?", ("Marseille", "Nice", "Paris", "Nantes", "Lille"), "Paris"),
Question("Quelle est la capitale de l'Italie ?", ("Rome", "Venise", "Pise", "Florence"), "Rome"),
Question("Quelle est la capitale de la Belgique ?", ("Anvers", "Bruxelles", "Bruges", "Liège"), "Bruxelles")
]
lancer_questionnaire(questionnaire)
```
J'ai apporté quelques modifications à votre code :
1. J'ai remplacé `if self.choix == Question.demander_reponse_numerique_utlisateur(self):` par `if self.choix[reponse - 1] == self.bonne_reponse:`. Cette modification permet de comparer la réponse choisie par l'utilisateur avec la bonne réponse.
2. J'ai modifié la méthode `demander_reponse_numerique_utlisateur` pour utiliser une boucle `while True`, ce qui permet de demander à l'utilisateur de rentrer une réponse jusqu'à ce qu'il entre une réponse valide.
3. J'ai modifié la fonction `lancer_questionnaire` pour qu'elle prenne en paramètre une liste de questions (au lieu de la variable globale `questionnaire`). Cela rend la fonction plus flexible et permet de l'utiliser avec différents ensembles de questions.
4. J'ai modifié la définition de `questionnaire` pour qu'elle soit une liste de questions (au lieu d'un tuple). Cela facilite l'utilisation de la fonction `lancer_questionnaire`.
Avec ces modifications, votre code devrait maintenant fonctionner correctement et afficher "Bonne réponse" ou "Mauvaise réponse" en fonction de la réponse choisie par l'utilisateur.
```python
class Question:
def __init__(self, titre: str, choix: (), bonne_reponse: str):
self.titre = titre
self.choix = choix
self.bonne_reponse = bonne_reponse
def poser(self):
print("QUESTION")
print(" " + self.titre)
for i in range(len(self.choix)):
print(" ", i + 1, "-", self.choix[i])
print()
reponse = self.demander_reponse_numerique_utlisateur()
if self.choix[reponse - 1] == self.bonne_reponse:
print("Bonne réponse")
return True
else:
print("Mauvaise réponse")
return False
def demander_reponse_numerique_utlisateur(self):
while True:
reponse = input("Votre réponse (entre 1 et " + str(len(self.choix)) + ") :")
try:
reponse = int(reponse)
if 1 <= reponse <= len(self.choix):
return reponse
else:
print("ERREUR : Vous devez rentrer un nombre entre", 1, "et", len(self.choix))
except ValueError:
print("ERREUR : Veuillez rentrer uniquement des chiffres")
def lancer_questionnaire(questionnaire):
score = 0
for question in questionnaire:
if question.poser():
score += 1
print("Score final :", score, "sur", len(questionnaire))
questionnaire = [
Question("Quelle est la capitale de la France ?", ("Marseille", "Nice", "Paris", "Nantes", "Lille"), "Paris"),
Question("Quelle est la capitale de l'Italie ?", ("Rome", "Venise", "Pise", "Florence"), "Rome"),
Question("Quelle est la capitale de la Belgique ?", ("Anvers", "Bruxelles", "Bruges", "Liège"), "Bruxelles")
]
lancer_questionnaire(questionnaire)
```
J'ai apporté quelques modifications à votre code :
1. J'ai remplacé `if self.choix == Question.demander_reponse_numerique_utlisateur(self):` par `if self.choix[reponse - 1] == self.bonne_reponse:`. Cette modification permet de comparer la réponse choisie par l'utilisateur avec la bonne réponse.
2. J'ai modifié la méthode `demander_reponse_numerique_utlisateur` pour utiliser une boucle `while True`, ce qui permet de demander à l'utilisateur de rentrer une réponse jusqu'à ce qu'il entre une réponse valide.
3. J'ai modifié la fonction `lancer_questionnaire` pour qu'elle prenne en paramètre une liste de questions (au lieu de la variable globale `questionnaire`). Cela rend la fonction plus flexible et permet de l'utiliser avec différents ensembles de questions.
4. J'ai modifié la définition de `questionnaire` pour qu'elle soit une liste de questions (au lieu d'un tuple). Cela facilite l'utilisation de la fonction `lancer_questionnaire`.
Avec ces modifications, votre code devrait maintenant fonctionner correctement et afficher "Bonne réponse" ou "Mauvaise réponse" en fonction de la réponse choisie par l'utilisateur.
il y a 3 ans
je compte apprendre tous les languages et c'est pas pour le hack
Et.pourtant c cool de hacker ..
il y a 3 ans
Et.pourtant c cool de hacker ..
tu parles de quoi dans le hacking ? pentest ? social engineering ?
super idol
il y a 3 ans
tu parles de quoi dans le hacking ? pentest ? social engineering ?
Tout
il y a 3 ans
```py
# Question
# - titre - str
# - choix - (str)
# - bonne_reponse - str
#
# - poser() -> bool
#
# Questionnaire
# - questions - (Question)
#
# - lancer()
#
def demander_reponse_numerique_utlisateur(min, max):
reponse_str = input("Votre réponse (entre " + str(min) + " et " + str(max) + ") :")
try:
reponse_int = int(reponse_str)
if min <= reponse_int <= max:
return reponse_int
print("ERREUR : Vous devez rentrer un nombre entre", min, "et", max)
except:
print("ERREUR : Veuillez rentrer uniquement des chiffres")
return demander_reponse_numerique_utlisateur(min, max)
'''
titre = question[0]
choix = question[1]
bonne_reponse = question[2]
'''
def poser_question(question):
# titre_question, r1, r2, r3, r4, choix_bonne_reponse
choix = question[1]
bonne_reponse = question[2]
print("QUESTION")
print(" " + question[0])
for i in range(len(choix)):
print(" ", i+1, "-", choix[i])
print()
resultat_response_correcte = False
reponse_int = demander_reponse_numerique_utlisateur(1, len(choix))
if choix[reponse_int-1].lower() == bonne_reponse.lower():
print("Bonne réponse")
resultat_response_correcte = True
else:
print("Mauvaise réponse")
print()
return resultat_response_correcte
def lancer_questionnaire(questionnaire):
score = 0
for question in questionnaire:
if poser_question(question):
score += 1
print("Score final :", score, "sur", len(questionnaire))
questionnaire = (
("Quelle est la capitale de la France ?", ("Marseille", "Nice", "Paris", "Nantes", "Lille"), "Paris"),
("Quelle est la capitale de l'Italie ?", ("Rome", "Venise", "Pise", "Florence"), "Rome"),
("Quelle est la capitale de la Belgique ?", ("Anvers", "Bruxelles", "Bruges", "Liège"), "Bruxelles")
)
lancer_questionnaire(questionnaire)
```
voici l'exercice
# Question
# - titre - str
# - choix - (str)
# - bonne_reponse - str
#
# - poser() -> bool
#
# Questionnaire
# - questions - (Question)
#
# - lancer()
#
def demander_reponse_numerique_utlisateur(min, max):
reponse_str = input("Votre réponse (entre " + str(min) + " et " + str(max) + ") :")
try:
reponse_int = int(reponse_str)
if min <= reponse_int <= max:
return reponse_int
print("ERREUR : Vous devez rentrer un nombre entre", min, "et", max)
except:
print("ERREUR : Veuillez rentrer uniquement des chiffres")
return demander_reponse_numerique_utlisateur(min, max)
'''
titre = question[0]
choix = question[1]
bonne_reponse = question[2]
'''
def poser_question(question):
# titre_question, r1, r2, r3, r4, choix_bonne_reponse
choix = question[1]
bonne_reponse = question[2]
print("QUESTION")
print(" " + question[0])
for i in range(len(choix)):
print(" ", i+1, "-", choix[i])
print()
resultat_response_correcte = False
reponse_int = demander_reponse_numerique_utlisateur(1, len(choix))
if choix[reponse_int-1].lower() == bonne_reponse.lower():
print("Bonne réponse")
resultat_response_correcte = True
else:
print("Mauvaise réponse")
print()
return resultat_response_correcte
def lancer_questionnaire(questionnaire):
score = 0
for question in questionnaire:
if poser_question(question):
score += 1
print("Score final :", score, "sur", len(questionnaire))
questionnaire = (
("Quelle est la capitale de la France ?", ("Marseille", "Nice", "Paris", "Nantes", "Lille"), "Paris"),
("Quelle est la capitale de l'Italie ?", ("Rome", "Venise", "Pise", "Florence"), "Rome"),
("Quelle est la capitale de la Belgique ?", ("Anvers", "Bruxelles", "Bruges", "Liège"), "Bruxelles")
)
lancer_questionnaire(questionnaire)
```
voici l'exercice
super idol
il y a 3 ans
En ligne
217
Sur ce sujet0










