Programme Python trop redondant...

Résolu
KikouillesUwU -  
 KikouillesUwU -

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

8 réponses

  1. jee pee Messages postés 9438 Date d'inscription   Statut Modérateur Dernière intervention   9 974
     

    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
  2. jee pee Messages postés 9438 Date d'inscription   Statut Modérateur Dernière intervention   9 974
     

    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
  3. KikouillesUwU
     

    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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. KikouillesUwU
     

    Oh ok d'accord merci x)

    Je ferais ça demain, bonne nuit ^^

    0
  6. KikouillesUwU
     

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

    0
  7. jee pee Messages postés 9438 Date d'inscription   Statut Modérateur Dernière intervention   9 974
     

    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
  8. KikouillesUwU
     

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

    0