Programme Python trop redondant...

Résolu/Fermé
KikouillesUwU - Modifié le 10 déc. 2022 à 23:40
 KikouillesUwU - 11 déc. 2022 à 14:28

Bonsoir à tous ^^,

je suis débutant sur le logiciel et j'aimerai rendre un programme python un peu moins redondant. Voici mon énoncé:

Rédiger une fonction; repartition(liste_couple) qui imprime autant de fois que nécessaire le texte suivant : « Pour prénom, une bonne idée serait cadeau » où le prénom de la personne et le cadeau sont associés en amont (penser à faire une liste de listes).

Et voici mon programme:

<

list_gift=['une console de jeux','un vélo', 'des livres','de l’argent','une surprise']
prenom=['Patrick Bateman','Vladimir','Magicarp','Ruby Nikara','Ernest Khalimov']
import random
def repartition():
        print(f'Pour {prenom[0]} une bonne idée serait {list_gift[0]}')
        print(f'Pour {prenom[1]} une bonne idée serait {list_gift[1]}')
        print(f'Pour {prenom[2]} une bonne idée serait {list_gift[2]}')
        print(f'Pour {prenom[3]} une bonne idée serait {list_gift[3]}')
        print(f'Pour {prenom[4]} une bonne idée serait {list_gift[4]}')

repartition()

>

Merci de votre aide x)


Windows / Chrome 107.0.0.0

A voir également:

8 réponses

jee pee Messages postés 39285 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 20 février 2024 9 182
Modifié le 11 déc. 2022 à 00:28

Bonjour,

Effectivement dans un programme on va faire une boucle pour répéter une action. Comme

for i in range(len(list));


Mais il faut d'abord te concentrer sur l'énoncé :

  • prénom de la personne et le cadeau sont associés en amont (penser à faire une liste de listes).
  • repartition(liste_couple)

Donc il te faut faire liste_couple, en combinant  list_gift et prenom : [ [ 'patrick' , 'console' ] , [ 'vladimir' , 'velo' ] ,  ... ], et cette liste la passer en paramètre à la fonction repartition()



PS bis : pour afficher du code, il faut utiliser l'icone spécialisée <>, et donner le langage, Python, pour la coloration syntaxique.

1
jee pee Messages postés 39285 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 20 février 2024 9 182
Modifié le 11 déc. 2022 à 01:14

Quand on a une liste de liste, il faut utiliser 2 indices, le 1er pour le niveau 1, le second pour le niveau 2 , liste[x][y],
x va être l'indice i et comme nous avons un couple au niveau 2 y va prendre les valeurs 0 et 1

import random
list_gift=['une console de jeux','un vélo', 'des livres','de l’argent','une surprise']
prenom=['Patrick Bateman','Vladimir','Magicarp','Ruby Nikara','Ernest Khalimov']
list_couple=[['Patrick Bateman','une console de jeux'],['Vladimir','un velo'],['Magicarp','des livres'],['Ruby Nikara','de l’argent'],['Ernest Khalimov','une surprise']]
def repartition(list_couple):
    for i in range(len(list_couple)):
        print(f'Pour {list_couple[i][0]} une bonne idée serait {list_couple[i][1]}')

repartition(list_couple)


Mais il y a quelque chose dans ton programme qui ne va pas ;-) si on programme, c'est pour faire faire les choses à l'ordinateur. On ne va pas composer à la main liste_couple, c'est à l'ordinateur de le faire. En fait à toi d'écrire le programme pour lui donner la marche à suivre pour le faire à partir des 2 listes personne et cadeau.


1
KikouillesUwU
11 déc. 2022 à 00:39

Merci beaucoup ^^

0
KikouillesUwU
11 déc. 2022 à 00:52

Re bonjour, 

Désolé je suis un peu perdu, je ne comprends pas ce que je dois mettre comme intervalle dans mes crochets dans le print...

list_gift=['une console de jeux','un vélo', 'des livres','de l’argent','une surprise']
prenom=['Patrick Bateman','Vladimir','Magicarp','Ruby Nikara','Ernest Khalimov']
list_couple=[['Patrick Bateman','une console de jeux'],['Vladimir','un velo'],['Magicarp','des livres'],['Ruby Nikara','de l’argent'],['Ernest Khalimov','une surprise']]
import random
def repartition(list_couple):
    for i in range(len(list_couple)):
        print(f'Pour {list_couple[]} une bonne idée serait {list_couple[]}')

repartition(list_couple)

Merci ^^

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question

Oh ok d'accord merci x)

Je ferais ça demain, bonne nuit ^^

0
KikouillesUwU
11 déc. 2022 à 14:00

C'est bon j'ai réussi merci x)

0
jee pee Messages postés 39285 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 20 février 2024 9 182
11 déc. 2022 à 14:25

Bien !

Une petite amélioration si tu as mis cadeau1 = personne1. Random offre la possibilité de mélanger une liste, ainsi à chaque exécution la liste est ordonnée différemment :

 random.shuffle(list_gift) 

0
KikouillesUwU
11 déc. 2022 à 14:28

Ah oui! J'ai déjà utilisé shuffle auparavant, c'est vrai que ça peut être sympas ici ^^

0