Retour à une ligne plus haute en python

Ju - 8 févr. 2021 à 19:39
Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 - 8 févr. 2021 à 21:06
Bonjour, je commence à coder en python et j'aimerais pouvoir revenir à une ligne plus haute si à une condition réalisée (if).
Est-ce possible ?

from random import randint


maquestion=str("Une machine peut-elle agir intelligement ?")
questions=[""]*100
questions[0]=maquestion
questions[1]= str("Pensez-vous que les IA seront plus intelligentes que l'homme un jour ?")
questions[2]=str("Pensez-vous qu'elles représentent un danger pour l'humanité ?")
questions[3]=str("Seriez-vous prêts à accueillir une IA au sein de votre foyer ?")
questions[4]=str("Pensez-vous qu'il est possible d'entretenir une relation sentimentale avec une IA ?")

temp=4
listedjaposee=[""]*100
nbdjaposee=0
while True:
tirage=randint(0, temp)
if questions[tirage] in listedjaposee:
continue

print(questions[tirage])
nbdjaposee=nbdjaposee+1
listedjaposee.append(questions[tirage])
print("Répondez avec : Oui (1), Non (2), Sans avis(3), Fin(4), Nouvelle question(5)")
choix = input()
if choix != "1" and "2" and "3" and "4" and "5":
print("Veuillez répondre à l'aide des indices donnés")
#retour au print de la question pour répondre correctement
if choix == "4":
break
if choix == "5":
temp += 1
questions[temp]=str(input("Posez votre question :"))
if nbdjaposee==temp+1 :
break


print("Le sondage est terminé")

5 réponses

Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 656
8 févr. 2021 à 20:31
Ok, que goto existe ou non, c'est considéré comme une mauvaise pratique.
Ça rend le code peu structuré, donc difficile à débogguer et maintenir.

Une façon simple est d'utiliser des while, un peu comme tu l'as fait.
Si la réponse est correcte, on sort du while, sinon on reboucle

1
Rejoignez-nous