+ 2

help me i want to shorten my code using def function

print('bienvenue au questionnaire') i = 1 while i < 30: gnima = input('LA DISTANCE MESURÉE EN DEGRÉS ENTRE LE MERIDIEN DE GREENWICH ET UN POINT QUELQUONQUE? ') if gnima == 'longitude': print('c est trouvé') break else: print('C EST FAUX RÉESSAYER') i = i + 1 u = 1 while i < 30: gma = input('Distance d’un lieu à l’équateur mesurée en degrés sur le méridien voir parallèle. ') if gma == 'latitude': print('C EST TROUVÉ') break else: print('C EST FAUX RÉESSAYER') o = 1 while o < 30: gna = input('Localisation d un objet sur une carte à l aide de coordonnées géographiques. ') if gna =='géolocalisation': print('C EST TROUVÉ') break else: print('C EST FAUX RÉESSAYER')

9th Apr 2021, 12:49 PM
Ska 2020
Ska 2020 - avatar
1 Resposta
+ 3
This is a little shorter. It won't behave exactly the same but maybe that's a good thing. You have some loops that compare with 30 which are actually infinite because the corresponding variable won't change within the loop. I changed all answer prompting loops to stop after 30 wrong answers. print('bienvenue au questionnaire') questions = [{ 'q': 'LA DISTANCE MESURÉE EN DEGRÉS ENTRE LE MERIDIEN DE GREENWICH ET UN POINT QUELQUONQUE?', 'a': 'longitude'}, { 'q': 'Distance d’un lieu à l’équateur mesurée en degrés sur le méridien voir parallèle.', 'a': 'latitude' }, { 'q': 'Distance d’un lieu à l’équateur mesurée en degrés sur le méridien voir parallèle.', 'a': 'géolocalisation' } ] for q in questions: i = 1 while i < 30: print(q['q']) gnima = input().strip() if gnima == q['a']: print('c est trouvé') break else: print('C EST FAUX RÉESSAYER') i += 1 The following isn't any shorter than above but it uses "def" like you mentioned in your question. def ask_question(q): i = 1 while i < 30: gnima = input(q['q']) if gnima == q['a']: print('c est trouvé') break else: print('C EST FAUX RÉESSAYER') i += 1 print('bienvenue au questionnaire') questions = [{ 'q': 'LA DISTANCE MESURÉE EN DEGRÉS ENTRE LE MERIDIEN DE GREENWICH ET UN POINT QUELQUONQUE?', 'a': 'longitude'}, { 'q': 'Distance d’un lieu à l’équateur mesurée en degrés sur le méridien voir parallèle.', 'a': 'latitude' }, { 'q': 'Distance d’un lieu à l’équateur mesurée en degrés sur le méridien voir parallèle.', 'a': 'géolocalisation' } ] for q in questions: ask_question(q)
9th Apr 2021, 1:09 PM
Josh Greig
Josh Greig - avatar