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 :

Besoin d'aide sur python, exercices sur les fichiers


Sujet :

Python

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Novembre 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2015
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Besoin d'aide sur python, exercices sur les fichiers
    Bonjour, bon je suis nouvelle alors je sais pas trop comment marche ce forum ^^'
    Je vous explique, j'ai commencé la spécialité ISN cette année et souvent mon prof nous donne des cours Python avec des exercices sur le cours. Le problème c'est que je ne suis pas très douée -_-
    Cette semaine on a travaillé les fichiers et j'ai quatre exercices à réaliser à partir d'un fichier nommé "mots.txt"
    Je pense avoir réussi le premier mais je galère pour les autres, est-ce que quelqu'un peut me donner des pistes? Merci :*

    Exercice 1
    Réaliser un programme qui détermine le nombre de mots dans le fichier
    Exercice 2
    Réalisez un programme qui affiche le mot le plus long parmi ceux du fichier
    Exercice 3
    Réalisez un programme qui extrait du fichier mots.txt tous les mots de 7 lettres et les enregistres dans un fichier mots7.txt
    Exercice 4
    Réalisez un programme affichant un mot du fichier au hasard

    Pour l'exercice 1, voilà ce que j'ai fais:

    Nom : CaptureEx3.PNG
Affichages : 3424
Taille : 7,3 Ko

    Et pour l'exercice 2, je suis bloqué là, le programme m'affiche le mot "contenir":
    Nom : CaptureEx4.PNG
Affichages : 4779
Taille : 10,1 Ko

  2. #2
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    L'algorithme peut consister à définir le mot le plus long, vide initialement.
    Lire les mots au fur et à mesure et si un mot plus long est détecté, remplacer le mot le plus long par celui qui vient d'être détecté plus long.

    [edit]
    Pour tes programmes, ce serait mieux de les mettre entre balises de code (signe # en haut) de façon à pouvoir les tester et éventuellement les modifier...

    [edit encore] Ton premier programme compte plutôt les lignes que les mots.
    Pas d'aide par mp.

  3. #3
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Voici un essai pour ton premier exercice.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    fichier = open("fichier.txt",'r')
    a = 1
    b = fichier.readline()
    nb_mots= 0
    while b != "":
        b = fichier.readline()
        print(b)
        liste_mots = b.split(" ")
        print(liste_mots)
        print("Il y a " ,len(liste_mots), " mot(s) dans cette ligne")
        nb_mots = nb_mots + len(liste_mots)
        a = a + 1
    fichier.close()
    fichier.close()
    print ("Il y a ", a, " lignes")
    print ("Il y a ", nb_mots, " mots en tout")
    Comme tu peux le voir, manipuler des fichiers externes n'est pas simple car il faudrait gérer les signes (, ; : ?), les nombres, les apostrophes, ...
    Voici ce que cela donne par exemple et ce n'est sans doute pas ce que tu souhaites.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    Je vous explique, j'ai commencé la spécialité ISN cette année et souvent mon prof nous donne des cours avec des exercices sur le cours. Le problème c'est que je ne suis pas très douée -_-
     
    ['Je', 'vous', 'explique,', "j'ai", 'commencé', 'la', 'spécialité', 'ISN', 'cette', 'année', 'et', 'souvent', 'mon', 'prof', 'nous', 'donne', 'des', 'cours', 'avec', 'des', 'exercices', 'sur', 'le', 'cours.', 'Le', 'problème', "c'est", 'que', 'je', 'ne', 'suis', 'pas', 'très', 'douée', '-_-\n']
    Il y a  35  mot(s) dans cette ligne
    Cette semaine on a travaillé les fichiers et j'ai quatre exercices à réaliser à partir d'un fichier nommé "mots.txt"
     
    ['Cette', 'semaine', 'on', 'a', 'travaillé', 'les', 'fichiers', 'et', "j'ai", 'quatre', 'exercices', 'à', 'réaliser', 'à', 'partir', "d'un", 'fichier', 'nommé', '"mots.txt"\n']
    Il y a  19  mot(s) dans cette ligne
    Je pense avoir réussi le premier mais je galère pour les autres, est-ce que quelqu'un peut me donner des pistes? Merci :*
     
    ['Je', 'pense', 'avoir', 'réussi', 'le', 'premier', 'mais', 'je', 'galère', 'pour', 'les', 'autres,', 'est-ce', 'que', "quelqu'un", 'peut', 'me', 'donner', 'des', 'pistes?', 'Merci', ':*\n']
    Il y a  22  mot(s) dans cette ligne
     
     
    ['\n']
    Il y a  1  mot(s) dans cette ligne
    Exercice 1
     
    ['Exercice', '1\n']
    Il y a  2  mot(s) dans cette ligne
    Réaliser un programme qui détermine le nombre de mots dans le fichier
     
    ['Réaliser', 'un', 'programme', 'qui', 'détermine', 'le', 'nombre', 'de', 'mots', 'dans', 'le', 'fichier\n']
    Il y a  12  mot(s) dans cette ligne
    Exercice 2
     
    ['Exercice', '2\n']
    Il y a  2  mot(s) dans cette ligne
    Réalisez un programme qui affiche le mot le plus long parmi ceux du fichier
     
    ['Réalisez', 'un', 'programme', 'qui', 'affiche', 'le', 'mot', 'le', 'plus', 'long', 'parmi', 'ceux', 'du', 'fichier\n']
    Il y a  14  mot(s) dans cette ligne
    Exercice 3
     
    ['Exercice', '3\n']
    Il y a  2  mot(s) dans cette ligne
    Réalisez un programme qui extrait du fichier mots.txt tous les mots de 7 lettres et les enregistres dans un fichier mots7.txt
     
    ['Réalisez', 'un', 'programme', 'qui', 'extrait', 'du', 'fichier', 'mots.txt', 'tous', 'les', 'mots', 'de', '7', 'lettres', 'et', 'les', 'enregistres', 'dans', 'un', 'fichier', 'mots7.txt\n']
    Il y a  21  mot(s) dans cette ligne
    Exercice 4
     
    ['Exercice', '4\n']
    Il y a  2  mot(s) dans cette ligne
    Réalisez un programme affichant un mot du fichier au hasard
     
    ['Réalisez', 'un', 'programme', 'affichant', 'un', 'mot', 'du', 'fichier', 'au', 'hasard\n']
    Il y a  10  mot(s) dans cette ligne
     
     
    ['\n']
    Il y a  1  mot(s) dans cette ligne
    Pour l'exercice 1, voilà ce que j'ai fais:
     
    ['Pour', "l'exercice", '1,', 'voilà', 'ce', 'que', "j'ai", 'fais:\n']
    Il y a  8  mot(s) dans cette ligne
     
    ['']
    Il y a  1  mot(s) dans cette ligne
    Il y a  16  lignes
    Il y a  152  mots en tout
    Pas d'aide par mp.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Vos programmes fonctionnent si le fichier mots.txt ne contient qu'un mot par ligne. C'est rarement le cas, mais c'est assez bien pour un exercice.

    Citation Envoyé par Mini-minimoys Voir le message
    Et pour l'exercice 2, je suis bloqué là, le programme m'affiche le mot "contenir"
    Relisez votre code! la condition "c == 14" est valable pour le mot qui vient d'être lu, si vous affichez le mot suivant çà ne le fait pas.

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

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Novembre 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2015
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Merci, j'ai modifié le premier exercice et du coup il fonctionne parfaitement.
    Par contre pour l'exercice 2, je ne comprends pas comment remplacer le mot le plus trouvé jusqu'à présent pas un autre plus long.
    Je voulais créer une autre variable et comparer les deux pour que si la 2ème variable a plus de caractère, la première prendrait cette valeur. Et pour ça je voulais pourvoir lire la ligne suivante en même temps que la première ligne mais je ne trouve pas comment faire.
    Est-ce que mon raisonnement vous paraît logique?

  6. #6
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Avec mon programme, tu peux faire une boucle sur liste_mots : pour chaque mot (chaque élément de la liste), tu regardes sa longueur et si la longueur du mot est plus longue que la longueur du mot le plus long stocké précédemment, il prend sa place.
    Pas d'aide par mp.

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par Mini-minimoys Voir le message
    Je voulais créer une autre variable et comparer les deux pour que si la 2ème variable a plus de caractère, la première prendrait cette valeur.
    C'est une bonne idée.

    Citation Envoyé par Mini-minimoys Voir le message
    Et pour ça je voulais pourvoir lire la ligne suivante en même temps que la première ligne mais je ne trouve pas comment faire.
    Est-ce que mon raisonnement vous paraît logique?
    C'est peut être logique mais çà traduit mal la bonne idée précédente.
    oui, il faut deux variables: une qui rende compte du mot le plus long trouvé jusqu'à présent, l'autre stockant la ligne lu dans le fichier.
    J'ai l'impression que vos cafouillages viennent de comment initialiser le mot le plus long "avant".
    En pseudo-code, çà donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    mot_le_plus_long = ''
    for mot in fichier:
         si longueur(mot) > longueur(mot_le_plus_long) alors:
                 mot_le_plus_long = mot
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'aide pour mon script sur les listes chainées
    Par narama87 dans le forum Débuter
    Réponses: 1
    Dernier message: 13/01/2011, 12h29
  2. Besoin d'aide pour un travail sur les dates
    Par LeMeD dans le forum VB.NET
    Réponses: 0
    Dernier message: 09/02/2010, 16h56
  3. aide pour un exercice sur les tableaux
    Par mimiif dans le forum Caml
    Réponses: 9
    Dernier message: 30/05/2008, 15h49
  4. besoin d aide sur un exercice sur les pointeurs
    Par azumachakib69 dans le forum C
    Réponses: 3
    Dernier message: 28/12/2006, 01h16
  5. Besoin d'aide pour un exercice sur les registres
    Par zakuza dans le forum Assembleur
    Réponses: 5
    Dernier message: 14/04/2006, 14h23

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