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 31945 Date d'inscription   Statut Modérateur Dernière intervention   10 003
     

    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 31945 Date d'inscription   Statut Modérateur Dernière intervention   10 003
     

    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 31945 Date d'inscription   Statut Modérateur Dernière intervention   10 003
     

    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