Python aide programmation

Résolu/Fermé
MK_8777 Messages postés 10 Date d'inscription dimanche 13 novembre 2022 Statut Membre Dernière intervention 22 août 2023 - 15 nov. 2022 à 12:01
MK_8777 Messages postés 10 Date d'inscription dimanche 13 novembre 2022 Statut Membre Dernière intervention 22 août 2023 - 15 nov. 2022 à 13:24

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

Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
15 nov. 2022 à 12:27
0
MK_8777 Messages postés 10 Date d'inscription dimanche 13 novembre 2022 Statut Membre Dernière intervention 22 août 2023
15 nov. 2022 à 12:28

Est-ce que tu pourrais me donner alors une indication ou une petite aide si c'est possible ?

0
MK_8777 Messages postés 10 Date d'inscription dimanche 13 novembre 2022 Statut Membre Dernière intervention 22 août 2023
15 nov. 2022 à 13:09

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")
0
jee pee Messages postés 39632 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234
15 nov. 2022 à 13:17

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 ?
 

0
MK_8777 Messages postés 10 Date d'inscription dimanche 13 novembre 2022 Statut Membre Dernière intervention 22 août 2023 > jee pee Messages postés 39632 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024
15 nov. 2022 à 13:20

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.

0
jee pee Messages postés 39632 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234 > MK_8777 Messages postés 10 Date d'inscription dimanche 13 novembre 2022 Statut Membre Dernière intervention 22 août 2023
15 nov. 2022 à 13:22

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"))
1
MK_8777 Messages postés 10 Date d'inscription dimanche 13 novembre 2022 Statut Membre Dernière intervention 22 août 2023 > jee pee Messages postés 39632 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024
15 nov. 2022 à 13:24

Bonjour c'est bon ca marche merci bcp !

0