Python aide programmation

Résolu

Bonjour, quelqu'un peut me le faire et m'expliquez je ne comprend vraiment pas c'est sur les dictionnaires en python

écrivez une fonction DicoEtudiant qui prend en paramètre une chaîne de caractère comprenant la répétition de trois champs séparés par des caractères ';' (un numéro d'étudiant, un nom et un prénom) et retourne un dictionnaire dont les clés sont les numeros d'étudiants lus et les valeurs sont, pour chaque numéro d'étudiant, une chaîne correspondant à la concaténation des prenoms et nom de la personne.
par exemple: chaine_etudiant = "21361;Besnier;Jean;21356;DUPOND;marc;21466;DURAND.julie"
DicoEtudiant(chaine_etudiant) renverra {2136}: JeanBESNIER, 21356:MarcDUPOND,21466: JulieDURANT

indication : pensez a utliliser la methode split.


Macintosh / Chrome 107.0.0.0

2 réponses

  1. re bonjour : 

    le probleme ici c'est que le programme ne reconnait pas la methode split et je ne sais pas comment faire :

    def dicoetudiant(chaine_etudiant):
        etudiant = chaine_etudiant.split(';')
    
        dico={ etudiant[i*3+0] : etudiant[i*3+1]+' '+ etudiant[i*3+2]for i in range((len(etudiant)+2)//3)}
    
        return dico
    dicoetudiant("21361;Besnier;Jean;21356;DUPOND;marc;21466;DURAND;julie")
    1. Modérateur

      Bonjour,

      Dans mon environnement ton programme fonctionne.

      C'est presque bon {'21361': 'Besnier Jean', '21356': 'DUPOND marc', '21466': 'DURAND julie'}

      pour {21361: 'JeanBESNIER', 21356: 'MarcDUPOND', 21466: 'JulieDURAND'} attendu ;-)

      Quel est exactement le message d'erreur ?
       

    2. @jee pee

      Bonjour il n'y a pas d'erreur je suis sur visual studio code mais la methode split n'est pas colorier comme visual studio code a l'habitude de le faire et quand je lance le programme il ne se passe rien.

    3. Modérateur
      @MK_8777

      Affiche etudiant après le split.

      Mais n'est ce pas tout simplement qu'il faut que tu affiches aussi le résultat ?

      print(dicoetudiant("21361;Besnier;Jean;21356;DUPOND;marc;21466;DURAND;julie"))
      
    4. @jee pee

      Bonjour c'est bon ca marche merci bcp !