IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Tri et affichage sur un fichier


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    elève
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : elève
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Par défaut Tri et affichage sur un fichier
    Bonjour,
    Je souhaite créer un programme qui tri et affiche la classe et les personnes de sexe féminin dont l'âge est compris entre 24 et 26 ans. Les classes et noms se trouvent dans un fichier texte.
    Par exemple le programme doit afficher :

    Classe 1
    Leila 25

    Classe 3
    Alexis 26

    Classe 4
    Rosine 24

    Il y a 5 classes dont le nombre de personnes varies.

    Classe : 1

    Alain 25 M
    Max 26 M
    Leila 25 F
    Marc 24 M
    Silvia 27 F

    Classe : 2

    Aziz 27 M
    Marie 28 F
    .
    ...
    Je me suis renseigné et on m'a dit de créer une classe mais je je sais pas comment m'y prendre au niveau des déclarations des classes noms âges et sexes

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par bighack2 Voir le message
    Je me suis renseigné et on m'a dit de créer une classe mais je je sais pas comment m'y prendre au niveau des déclarations des classes noms âges et sexes
    Créer des classes, c'est organiser son code de façon particulière... et comme vous n'avez pas écrit de code ça ne vous avancera pas (surtout si vous ne savez pas ce que c'est).

    Partez du fichier texte. Vous allez le parcourir ligne à ligne pour y détecter celles qui commencent par classe des autres (les "élèves"). Puis côté élèves, c'est une chaîne de caractères contenant 3 informations séparées par des bancs/espaces dont on peut extraire le prénom et l'âge.

    Reste à afficher ceux dont l'âge correspond aux critères demandés.

    Si vous avez des difficultés pour traduire cela en Python, ouvrez un tuto.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par bighack2 Voir le message
    Je me suis renseigné et on m'a dit de créer une classe mais je je sais pas comment m'y prendre au niveau des déclarations des classes noms âges et sexes
    Je pense que la personne à qui tu t'es adressé connait Python. Une classe c'est la traduction Python d'un objet au sens "progammation objet". Un objet c'est un container qui contient des éléments de travail (exemple nom, âge, sexe) et des outils pour les utiliser (exemple on pourrait avoir l'outil "affiche()" pour afficher l'objet et cet outil afficherait le nom, âge et sexe qu'il contient).

    Mais avant de vouloir programmer des classes, il faut déjà être bien à l'aise en Python sinon tu pars dans le mur.

    D'autant plus qu'on peut très bien faire la même chose sans classe. En effet, rien ne m'interdit de stocker le nom, prénom, âge dans un dictionnaire. Ok c'est pas un objet donc il ne pourra pas avoir d'outil mais rien ne m'interdit de créer ensuite une fonction "affiche()" à laquelle je lui passe mon dictionnaire. Bref les classes c'est juste une facilité mais n'est jamais nécessaire.

    Si j'étais toi je commencerais par lire le fichier texte et analyser les informations (ça c'est une classe, ça c'est un élève). De là petit à petit...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre habitué
    Homme Profil pro
    elève
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : elève
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Par défaut
    Je reviens après avoir chercher des informations sur vos méthodes sans succès. Ok je sais ouvrir et lire un fichier ajouter des éléments remplacer supprimer bref les notions de base. Mes connaissances s'arrêtent là.Celà est peut être dûe à la façon d'apprendre.
    Comment détecter une ligne commençant par classe des autres ?
    En quoi stocker le nom, prénom, âge dans un dictionnaire m'aiderai à trier les informations nécessaires ?
    Merci.

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par bighack2 Voir le message
    Comment détecter une ligne commençant par classe des autres ?
    Une ligne c'est une string. Or un objet string possède une méthode "startswith"
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ligne="abcdef"
    >>> ligne.startswith("a")
    True
    >>> ligne.startswith("ab")
    True
    >>> ligne.startswith("abc")
    True
    >>> ligne.startswith("abcz")
    False

    Tu peux aussi utiliser l'opérateur "in" => "cde" in ligne.

    Citation Envoyé par bighack2 Voir le message
    En quoi stocker le nom, prénom, âge dans un dictionnaire m'aiderai à trier les informations nécessaires ?
    Il serait utile que tu ouvres un tutoriel un peu plus fourni que ceux que tu as lu jusqu'à présent
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    data=(
    	{"nom" : "toto", "prenom" : "ptoto", "age" : 18},
    	{"nom" : "titi", "prenom" : "ptiti", "age" : 20},
    	{"nom" : "tutu", "prenom" : "ptutu", "age" : 14},
    )
     
    print("noms")
    for x in sorted(data, key=lambda x: x["nom"]): print(x)
     
    print("prenoms")
    for x in sorted(data, key=lambda x: x["prenom"], reverse=True): print(x)
     
    print("ages")
    for x in sorted(data, key=lambda x: x["age"]): print(x)
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par bighack2 Voir le message
    Comment détecter une ligne commençant par classe des autres ?
    Ce serait pareil de découper la chaîne de caractères A122A234A22 en A122, A234, A22. On commence par écrire une boucle qui va tester chaque caractère. Dès qu'on rencontre un A (ou une classe), la suite fait partie du groupe de lettre qui suit A jusqu'à ce qu'on rencontre le prochain A ou la fin.

    Citation Envoyé par bighack2 Voir le message
    En quoi stocker le nom, prénom, âge dans un dictionnaire m'aiderai à trier les informations nécessaires ?
    A rien puisque vous cherchez les objets qui répondent à certaines conditions. Et si on reprend A122, A234, A22... ce serait par exemple afficher les chiffres compris entre 2 et 3.
    Ce qui donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> S = 'A122A234A22'
    >>> for ch in S:
    ...     if ch == 'A':
    ...        print ('** A **')
    ...     elif '2' <= ch <= '3':
    ...        print (ch)
    ...
    replacer une suite de caractères par la suite des lignes d'un fichier et d'autres tests ne changera pas la structure de base du code: un boucle qui balaie la séquence d'objets et les tests qui vont avec. Et c'est ce qu'on apprend dans les tutos (et que l'on maîtrise si on s'applique à essayer de faire les exercices).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre habitué
    Homme Profil pro
    elève
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : elève
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Par défaut
    Merci de me donner les liens des tutoriels sur python plus précisément sur les fichiers et d'éventuels exercices.

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par bighack2 Voir le message
    Merci de me donner les liens des tutoriels sur python plus précisément sur les fichiers et d'éventuels exercices.
    Vous avez un bouton "tutoriels Python" sur cette page...
    Dans la liste, regardez si le Swinnen répond à vos attentes.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. affichage d'un fichier wave sur TperformanceGraph
    Par tonyzenden dans le forum C++
    Réponses: 0
    Dernier message: 08/03/2010, 19h48
  2. Tri sur un fichier Variable Bloqué
    Par Antichoc dans le forum z/OS
    Réponses: 7
    Dernier message: 16/04/2008, 11h53
  3. [WD10] un simple tri sur un fichier
    Par yann_72 dans le forum WinDev
    Réponses: 9
    Dernier message: 05/02/2008, 09h29
  4. Réponses: 8
    Dernier message: 23/12/2007, 20h59
  5. affichage d'un fichier xml sur une page
    Par witch dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/10/2007, 19h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo