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 :

Programmer une s�quence afin de trouver une redondance


Sujet :

Python

  1. #1
    Membre tr�s actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    434
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 434
    Par d�faut Programmer une s�quence afin de trouver une redondance
    Bonsoir je bute en python sur une boucle for et un slice
    Je veux parcourir un tableau par s�quence avec un slice d�limit� par i:j je ne vois pas comment l��crire en python
    J�ai farfouiller sur le net je me suis perdu
    Merci d�avance

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2006
    Messages
    12 850
    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 850
    Billets dans le blog
    1
    Par d�faut
    Bonjour
    Citation Envoy� par s2a07 Voir le message
    J�ai farfouiller sur le net je me suis perdu
    Et tu n'as pas farfouill dans un tutoriel Python ?
    Code python : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    tab=..... (une liste de trucs) .....
    for i in range(0, len(tab), 5): print(tab[i:i+5])
    Accessoirement je ne vois pas le rapport entre ta demande et ton titre (o� est la s�quence? o� est la redondance?). Autant les titres tr�s g�n�ralis�s tels que "probl�me Python" ou "j'y arrive pas" c'est nul, autant les titres sp�cifiques mais dont la sp�cificit� indiqu�e n'a rien � voir avec le topic lui-m�me c'est tout aussi nul.
    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]

  3. #3
    Membre tr�s actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    434
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 434
    Par d�faut
    merci j'y avais pens� a cette impl�mentation , autant pour moi je cherche a programmer une bande qui parcourt le texte avec des slices
    je suis novice avec les slices et la syntaxe python j'ai et� stresse de voir des slice indic� d'ou mon appel au secours
    merci pour votre aide

  4. #4
    Invit�
    Invit�(e)
    Par d�faut
    Salut !
    Je ne sais pas trop si tu utilises numpy ou pas mais voici un exemple :
    https://pyspc.readthedocs.io/fr/latest/05-bases/08-tableaux_numpy.html#Parcourir-le-contenu-d'un-tableau-numpy

    Sinon j'ai pens� que set() pourrait peut-�tre t'aider :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    >>> list1 = [1,2,3,4,5,6]
    >>> list2 = [4,5,6,7,8,9]
    >>> set(list2) & set(list1)
    {4, 5, 6}
    >>> set([1,2,1,5,1,1,2,2,4,2,3])
    {1, 2, 3, 4, 5}

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2006
    Messages
    12 850
    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 850
    Billets dans le blog
    1
    Par d�faut
    Citation Envoy� par LeNarvalo Voir le message
    Sinon j'ai pens� que set() pourrait peut-�tre t'aider :
    Comment tu verrais �a pour trouver une redondance ??? set(list1) & set(list2) fait ressortir les �l�ments communs � "list1" et "list2" mais "�l�ment commun" ne signifie pas "redondance"...

    Citation Envoy� par LeNarvalo Voir le message
    Code python : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    >>> set([1,2,1,5,1,1,2,2,4,2,3])
    {1, 2, 3, 4, 5}
    Mouais... le "1" et "2" sont manifestement redondants mais ta solution ne les fait pas ressortir tant que �a... Ou alors on ne parle pas de la m�me "redondance"...
    Code python : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    t=[1,2,1,5,1,1,2,2,4,2,3]
    [x for x in set(t) if t.count(x) > 1]
    [1, 2]
    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
    Invit�
    Invit�(e)
    Par d�faut
    Citation Envoy� par Sve@r Voir le message
    Comment tu verrais �a pour trouver une redondance ??? set(list1) & set(list2) fait ressortir les �l�ments communs � "list1" et "list2" mais "�l�ment commun" ne signifie pas "redondance"...


    Mouais... le "1" et "2" sont manifestement redondants mais ta solution ne les fait pas ressortir tant que �a... Ou alors on ne parle pas de la m�me "redondance"...
    Code python : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    t=[1,2,1,5,1,1,2,2,4,2,3]
    [x for x in set(t) if t.count(x) > 1]
    [1, 2]
    Oui c'est pas faux ! J'ai juste donn� des exemples de l'utilisation que l'on peut faire de set(), vu que je ne sais pas vraiment comment est son tableau.
    Je me suis imagin� un truc en 2D.

  7. #7
    Membre tr�s actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    434
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 434
    Par d�faut
    Merci beaucoup j'ai trouve un code source qui m'as aide mais je bute sur savefig a quel endroit et ou dois je stocker cet image et pourquoi rien ne s'affiche? pour information le code fonctionne sur linux
    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
     
     
    import random
    import matplotlib.pyplot as plt
     
     
    def isprefixe(texte,mot,i):
        B = True
        j = 0
        while (j < len(mot)) and B:
            if texte[i+j] != mot[j]:
                B = False
                j +=1
                return B
     
     
     
    def cherche_occurrences(texte, mot):
     
        occ = [] # liste des occurrences
        for i in range(len(texte)-len(mot)+1):
            if isprefixe(texte,mot,i):
                occ.append(i)
                return occ
     
     
    def texte_alea(n):
        lettres = "abcdefghijklmnopqrstuvwxyz"
        texte = ""
        for i in range(n):
            texte = texte + lettres[random.randint(0,25)]
            return texte
     
    def texte_alea2(n):
        texte= ""
        for i in range(n):
            texte += random.choice("abcdefghijklmnopqrstuvwxyz")
            return texte
     
            #print(’{}’.format(nombre_moyen_apparition(10000,’llg’,1000)))  
     
     
    def nombre_moyen_apparition(n,mot,m):
     
        compteur = 0
        for i in range(m):
            texte = texte_alea2(n)
            compteur += len(cherche_occurrences(texte,mot))
            return compteur / m
     
        X=[]
        Y=[]
        for n in range (200,30000,200):
            X.append(n)
            Y.append(nombre_moyen_apparition(n,mot,m))
            plt.plot(X,Y)
            plt.savefig(’pb_py003-fig1.eps’)
            plt.show()

  8. #8
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2006
    Messages
    12 850
    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 850
    Billets dans le blog
    1
    Par d�faut
    Citation Envoy� par s2a07 Voir le message
    Merci beaucoup j'ai trouve un code source qui m'as aide
    Et tu l'as �tudi� ce code source o� tu l'as juste recopi� sans y rien piger?

    Citation Envoy� par s2a07 Voir le message
    Code python : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    def isprefixe(texte,mot,i):
        B = True
        j = 0
        while (j < len(mot)) and B:
            if texte[i+j] != mot[j]:
                B = False
                j +=1
                return B
    Il n'y a rien qui te choque dans cette fonction? Style un incr�ment qui ne se fait que sous certaine condition (boucle infinie si la condition n'arrive pas)...
    Code python : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    def isprefixe(texte, mot, i):
    	return texte[i:len(mot)+i] == mot

    Citation Envoy� par s2a07 Voir le message
    Code python : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    def texte_alea(n):
        lettres = "abcdefghijklmnopqrstuvwxyz"
        texte = ""
        for i in range(n):
            texte = texte + lettres[random.randint(0,25)]
            return texte
    Un peu pareil. Un return d�s la premi�re it�ration, on peut se demander � quoi sert donc la boucle !!!
    Code python : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    import string
    def texte_alea(n):
    	return "".join(random.sample(string.ascii_lowercase, n))

    Citation Envoy� par s2a07 Voir le message
    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
    15
    def nombre_moyen_apparition(n,mot,m):
     	compteur = 0
    	for i in range(m):
    		texte = texte_alea2(n)
    		compteur += len(cherche_occurrences(texte,mot))
    		return compteur / m
     
    	X=[]
    	Y=[]
    	for n in range (200,30000,200):
    		X.append(n)
    		Y.append(nombre_moyen_apparition(n,mot,m))
    		plt.plot(X,Y)
    		plt.savefig("pb_py003-fig1.eps")
    		plt.show()
    Mouais ok. On est en droit de se demander o� t'as trouv� cette bouse. Mais de ton c�t� si tu ne sais pas lire une boucle, commence par apprendre Python quoi.
    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]

  9. #9
    Membre tr�s actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    434
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 434
    Par d�faut
    j'ai r�cuper� ce code a cet adresse http://alain.troesch.free.fr/2015/Fi.../corrinfo8.pdf en python je maitrise uniquement les listes les tuples et les dictionnaires et sickit learn a premier impression je n'ai rein compris a ce code d'ou mon appel au secour

  10. #10
    Expert �minent
    Homme Profil pro
    Architecte technique retrait�
    Inscrit en
    Juin 2008
    Messages
    21 772
    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 772
    Par d�faut
    Salut,

    Citation Envoy� par s2a07 Voir le message
    je n'ai rein compris a ce code d'ou mon appel au secour
    Les exercices associ�s � un cours n'ont pour but que de vous faire pratiquer les notions abord�es dans le chapitre correspondant.
    C'est rarement du bon Python puisqu'on vous force � comprendre des constructions �l�mentaires qu'on �crit peu souvent (en dehors de ces cours pour d�butant).

    Maintenant, si vous voulez apprendre � programmer, il ne faut pas juste r�cup�rer la solutions des exercices mais essayer de les faire par vous m�me en vous aidant du contenu du cours.

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

  11. #11
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2006
    Messages
    12 850
    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 850
    Billets dans le blog
    1
    Par d�faut
    Citation Envoy� par s2a07 Voir le message
    Oui, ben c'est �a. Ton code...
    Code python : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    def isprefixe(texte,mot,i):
        B = True
        j = 0
        while (j < len(mot)) and B:
            if texte[i+j] != mot[j]:
                B = False
                j +=1
                return B
    ... ne correspond pas � ce code...
    Code python : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    def isprefixe(texte,mot,i):
        B = True
        j = 0
        while (j < len(mot)) and B:
            if texte[i+j] != mot[j]:
                B = False
            j +=1
        return B
    ...pr�sent� dans le document que tu cites. Et tout le reste est � l'avenant. T'as effectivement recopi� sans y rien piger. Et tu ne sais m�me pas � quoi servent les indentations en Python, alors que c'est la toute premi�re chose qu'on apprend !!!

    Citation Envoy� par s2a07 Voir le message
    en python je maitrise uniquement les listes les tuples et les dictionnaires
    G�n�ralement la "maitrise" de ces �l�ments passe au pr�alable par la "maitrise" des boucles... mais admettons.

    Citation Envoy� par s2a07 Voir le message
    je n'ai rein compris a ce code d'ou mon appel au secour
    Malheureusement on ne pourra pas apprendre Python � ta place. Enfin si, on pourrait r��crire ici la base d'un programme Python (les indentations, les boucles, etc) mais puisque c'est d�j� �crit dans les tutos...
    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]

  12. #12
    Membre tr�s actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    434
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 434
    Par d�faut
    je savais developpe en python en 2012 mais avec l'age j'ai oublie je suis plus algorithmicien mainteant et theoricien j'ai perdu de ma verve c'est la vie
    en tout cas merci ce qui me bloque c'est juste la ligne savefig quand je regarde la librairie ils parlent du nom du fichier pas du chemin ou est stocker le fichier
    je ne comprends pas ce que fais la fonction
    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
     
    def nombre_moyen_apparition(n,mot,m):
     
        compteur = 0
        for i in range(m):
            texte = texte_alea2(n)
            compteur += len(cherche_occurrences(texte,mot))
            return compteur / m
     
        X=[]
        Y=[]
        for n in range (200,30000,200):
            X.append(n)
            Y.append(nombre_moyen_apparition(n,mot,m))
            plt.plot(X,Y)
            plt.savefig(’comparaison.png’)
            plt.show()

  13. #13
    Expert �minent
    Homme Profil pro
    Architecte technique retrait�
    Inscrit en
    Juin 2008
    Messages
    21 772
    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 772
    Par d�faut
    Salut

    Le r�pertoire dans lequel est stock� le fichier est le r�pertoire courant (du processus utilisateur). Ce qui n'a rien � voir avec la programmation (mais avec le syst�me de fichier, le r�pertoire par d�faut,...)

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

  14. #14
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2006
    Messages
    12 850
    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 850
    Billets dans le blog
    1
    Par d�faut
    Citation Envoy� par s2a07 Voir le message
    ils parlent du nom du fichier pas du chemin ou est stocker le fichier
    Un "nom de fichier" implique toujours son chemin. Si je parle de "/etc/passwd", il s'agit du fichier "passwd" situ� dans le dossier "/etc" (nom absolu). Si je parle de "etc/passwd" il s'agit du fichier "passwd" situ� dans un dossier "etc" situ� lui-m�me dans le dossier o� je me trouve au moment o� je lance la commande (nom relatif). Et si je parle de "passwd" il s'agit du fichier "passwd" situ� dans le dossier o� je me trouve au moment o� je lance la commande (�quivalent de "./passwd" avec dossier "." mis par d�faut). L� encore un nom relatif. Et cela n'est pas une notion Python mais une notion OS (savoir nommer/rep�rer un fichier dans son OS).
    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]

  15. #15
    Membre tr�s actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    434
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 434
    Par d�faut
    le plus simple pour r�soudre le probl�me initial est de programmer une bande avec des slices que l'on fait traverser sur le texte le probl�me est peut on consid�rer les slices comme une bande de parcours
    et comment l'�crire j'ai l'algo mais concr�tement et syntaxiquement je bute

  16. #16
    Expert �minent
    Homme Profil pro
    Architecte technique retrait�
    Inscrit en
    Juin 2008
    Messages
    21 772
    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 772
    Par d�faut
    Salut,

    Citation Envoy� par s2a07 Voir le message
    le plus simple pour r�soudre le probl�me initial
    Vous n'avez jamais d�crit le probl�me a r�soudre, vous r�ler juste de ne pas arriver � �crire la solution que vous envisagez...
    Et le code que Sve@r a d�j� post� ne le fait pas, c'est que ce n'est peut �tre pas si simple. Peut �tre faudrait-il commencer avec ce qu'on a au d�part et ce qu'on cherche � obtenir sur un ou plusieurs exemples simples?

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

  17. #17
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2006
    Messages
    12 850
    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 850
    Billets dans le blog
    1
    Par d�faut
    Citation Envoy� par s2a07 Voir le message
    et comment l'�crire j'ai l'algo mais concr�tement et syntaxiquement je bute
    Heureusement qu'en dehors de la syntaxe tu maitrises le reste

    Code python : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    def redondance(pattern, texte):
    	cpt=0
    	l=len(pattern)
    	for i in range(len(texte) - l + 1):
    		if texte[i:i+l] == pattern: cpt+=1
    	return cpt
     
    print(redondance("abc", "tototabctotoabc"))
    Je pense qu'une regex intelligente fera 3 fois mieux en 3 fois moins de ligne mais j'ai la flemme de la chercher (JurassicPork?)
    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]

  18. #18
    Expert �minent
    Homme Profil pro
    Architecte technique retrait�
    Inscrit en
    Juin 2008
    Messages
    21 772
    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 772
    Par d�faut
    Citation Envoy� par Sve@r Voir le message
    Je pense qu'une regex intelligente fera 3 fois mieux en 3 fois moins de ligne mais j'ai la flemme de la chercher (JurassicPork?)
    Python sait d�j� faire �� tr�s bien:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    >>> "tototabctotoabc".count('abc')
    2
    >>>
    "compter les occurrences d'une chaine de caract�res dans une autre" est si simple � dire que c'est pas sur que c'est ce que cherche � faire le PO...
    Apr�s comment faire �� avec Python, c'est d'abord un algo. et personnellement, si je ne connaissait pas "count", j'�crirai cela plut�t sous la forme d'un automate:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    def redondance(pattern, texte):
        count = 0
        n = len(pattern)
     
        ix = 0
        for c in texte:
            if c == pattern[ix]:
                ix += 1
                if ix == n:
                    count += 1
                    ix = 0
            elif ix != 0:
                ix = 0
        return count
    note: pas test�.

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

  19. #19
    Expert confirm� Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par d�faut
    salut,

    un exemple d'extraction des occurrences avec recouvrement via une regex :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    >>> import re
    >>> occurrences = lambda texte, mot: re.findall(r'(?=({}))'.format(mot), texte)
    >>> occurrences("abbabba", "abba")
    ['abba', 'abba']

  20. #20
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2006
    Messages
    12 850
    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 850
    Billets dans le blog
    1
    Par d�faut
    Citation Envoy� par wiztricks Voir le message
    Python sait d�j� faire �� tr�s bien:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    >>> "tototabctotoabc".count('abc')
    2
    >>>
    Zut, en plus j'avais utilis� count() dans ce m�me topic mais l� j'y ai pas pens�. Ceci dit, comme le PO avait parl� de "bandes de slices" �a a �t� la vision qui s'est impos�e: un slice glissant.

    Citation Envoy� par wiztricks Voir le message
    "compter les occurrences d'une chaine de caract�res dans une autre" est si simple � dire que c'est pas sur que c'est ce que cherche � faire le PO...
    Ouais mais comme avec lui rien ne semble simple...

    Citation Envoy� par wiztricks Voir le message
    Apr�s comment faire �� avec Python, c'est d'abord un algo. et personnellement, si je ne connaissait pas "count", j'�crirai cela plut�t sous la forme d'un automate:
    En fait c'est n�cessaire si on ne connait pas non plus le slice. Sinon mon algo suffit

    Citation Envoy� par wiztricks Voir le message
    note: pas test�.
    Pas besoin. Tant que la lettre en cours correspond � la lettre de l'indice interm�diaire on incr�mente l'indice et si l'indice atteint la longueur du pattern on a trouv� une occurence. Et si entre temps la lettre diff�re on remet l'indice interm�diaire au d�but. Ca semble coh�rent.
    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]

Discussions similaires

  1. R�ponses: 3
    Dernier message: 09/10/2015, 19h21
  2. R�ponses: 4
    Dernier message: 20/02/2010, 02h40
  3. programmer une s�quence d'images
    Par sino dans le forum C++Builder
    R�ponses: 5
    Dernier message: 14/02/2006, 11h57
  4. Programmer une pause br�ve
    Par NeoMan dans le forum Assembleur
    R�ponses: 14
    Dernier message: 28/04/2003, 01h59
  5. comment programmer une progressbar
    Par Choucas dans le forum Paradox
    R�ponses: 3
    Dernier message: 13/11/2002, 11h07

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