Dm info python - Page 4
Répondre à la discussion
Page 4 sur 4 PremièrePremière 4
Affichage des résultats 91 à 104 sur 104

Dm info python



  1. #91
    invite43901482

    Re : Dm info python


    ------

    A vu de nez ça peut pas fonctionner, sachant que votre liste sera composé des lignes du fichier, len(liste) représentera le nombre de lignes du fichier et non le caractères 2 à 2.

    Pourquoi ne partez vous pas simplement de

    Code:
    for key in bigrames:
        for ligne in f.readlines(): # ligne représente une ligne dans la liste des lignes du fichier
            n = ligne.count(key) 
            bigrames[key] += n
    pas testé, à vérifier donc...

    P.S Attention c'est pour un seul fichier, pour une liste de fichiers, faudra encore une boucle for supplémentaire. Je conseille de passer par une fonction supplémentaire afin de rendre le code plus propre.

    -----

  2. #92
    invite43901482

    Re : Dm info python

    oups...

    dico[key] += n

    rectification

  3. #93
    invite4c80defd

    Re : Dm info python

    j'ai un probleme avec le ligne "bigrames[key] += n" car ça me dit : list indices must be integers, not str

  4. #94
    invite43901482

    Re : Dm info python

    J'avais modifié plus haut, tu n'as pas vu?

  5. #95
    invite4c80defd

    Re : Dm info python

    ah oui ,je n'avais pas vu, dsl.

    voila où j'en suisd (ça coince encore mais je ne sais pas où, on me dit key error'es'...)

    Merci pour votre aide

    Code:
    def frequence_bigrammes2(fichier):
        bigrames = ["es", "le", "en", "de", "re", "nt", "on", "te", "er", "se"]
        dico = {}
        dico.fromkeys(bigrames, 0)
        {'on': 0, 'le': 0, 'de': 0, 're': 0,'en': 0,
         'se': 0, 'te': 0, 'nt': 0, 'es': 0, 'er': 0}
    
        
        f=open(fichier,"r")
        for key in bigrames:
            for ligne in f.readlines(): # ligne représente une ligne dans la liste des lignes du fichier
                n = ligne.count(key) 
                dico[key]=dico[key]+1
        return(dico)

  6. #96
    invite43901482

    Re : Dm info python

    Pourquoi ajouter 1, j'ai ajouté n

    N'oublie pas de close ton fichier, surtout si tu as une ribambelle de fichiers à traiter...

    Si tu modifies bien bigrames par dico, comme dans ma modification, je ne vois pas pourquoi tu aurais un key error

  7. #97
    invite4c80defd

    Re : Dm info python

    voila où j'en suis apres quelques modifications:

    Code:
    def frequence_bigrammes2(liste_fichiers):
    
        bigrames = ["es", "le", "en", "de", "re", "nt", "on", "te", "er", "se"]
        dico = {}
        dico.fromkeys(bigrames, 0)
        {'on': 0, 'le': 0, 'de': 0, 're': 0,'en': 0,
         'se': 0, 'te': 0, 'nt': 0, 'es': 0, 'er': 0}
        
        for fichier in liste_fichiers:
            f=open(fichier,"r")
            for key in bigrames:
                for ligne in f.readlines(): # ligne représente une ligne dans la liste des lignes du fichier
                    n = ligne.count(key) 
                    dico[key]=dico[key]+n
            f.close()
        return(dico)
    dans le shell:
    j'ai :
    Code:
    Traceback (most recent call last):
      File "<pyshell#4>", line 1, in <module>
        frequence_bigrammes2(liste_fichiers)
      File "J:\info 224\question 8.py", line 34, in frequence_bigrammes2
        dico[key]=dico[key]+n
    KeyError: 'es'

  8. #98
    invite43901482

    Re : Dm info python

    for key in dico à la place de for key in bigrames, ça donne quoi?

  9. #99
    invite4c80defd

    Re : Dm info python

    ça me retourne un dico vide, j'avoue que la j'y comprend plus grand chose...

  10. #100
    invite43901482

    Re : Dm info python

    ah je sais, c'est ma faute j'ai travaillé sur interpréteur

    dico = dico.fromkeys(bigrames, 0) # fromkeys crée un nouveau dictionnaire

    Désolé

  11. #101
    invite4c80defd

    Re : Dm info python

    ce n'est pas grave , des erreurs j'en fais plusieurs dizaines par jour!
    j'ai a présent un dico concret mais , en voulant voir si il fonctionnait, j'ai volontairement rajouté des "en" dans les textes, et il m'affiche 0 pour 'en' . De quoi cela pourrait-il venir ?
    De plus, si je change une lettre d'un texte, tous les résultats sont différents (a chaque fois, j'ai un des bigrammes qui a une valeur et tous les autres sont à 0, bizarre non ?)

  12. #102
    invite43901482

    Re : Dm info python

    Code:
    >>> "entree".count("en")
    1
    ça fonctionne bien!

  13. #103
    invite4c80defd

    Re : Dm info python

    c'est bizarre: quend je l'execute , j'ai
    Code:
    {'de': 66, 'nt': 0, 'se': 0, 'en': 0, 'er': 0, 're': 0, 'es': 0, 'le': 0, 'te': 0, 'on': 0}
    je recommence sans aller changer les textes:
    Code:
    {'le': 56, 'on': 0, 're': 0, 'se': 0, 'er': 0, 'es': 0, 'te': 0, 'nt': 0, 'de': 0, 'en': 0}
    enfin, ce n'est pas grave, le code est juste (vous l'avez vérifié) donc le prof en tiendra compte

  14. #104
    invite4c80defd

    Re : Dm info python

    Tout est réglé: la faute venait de mon f.close() mal placé. Tout fonctionne bien .
    Un grand merci à tous!

Page 4 sur 4 PremièrePremière 4

Discussions similaires

  1. Python
    Par invitee851a923 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 10/12/2012, 06h25
  2. Besoin d'avis Master info ou bio-info ??? je suis perdue
    Par invitece52300a dans le forum Orientation après le BAC
    Réponses: 2
    Dernier message: 26/02/2012, 11h01
  3. Transformer une info LED en info négative ?
    Par invite6f3e0bd5 dans le forum Électronique
    Réponses: 2
    Dernier message: 18/09/2009, 23h56
  4. Python
    Par invite3e3c726d dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 13/03/2009, 12h55
  5. Licence Math-info >> DUT info
    Par invitedcc7860a dans le forum Orientation après le BAC
    Réponses: 5
    Dernier message: 10/02/2009, 16h24