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 :

fonction pluriel qui marche pas


Sujet :

Python

  1. #21
    Membre très actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Par défaut
    Voilà le code , avec certains tests :


    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
    62
    63
    64
    >>> def pluriel_ail(mot) :
    	ail= 'bail corail émail soupirail travail ventail vitrail'.split()
    	if mot in ail :
    		return mot[0 : -2] + 'ux'
     
     
    >>> pluriel_ail('bail')
    'baux'
    >>> pluriel_ail('travail')
    'travaux'
    >>> def pluriel_ou(mot) :
    	ou = 'hibou chou genou caillou pou bijou'.split()
    	if mot in ou :
    		return mot + 'x'
     
     
    >>> pluriel_ou('hibou')
    'hiboux'
    >>> def pluriel_eu(mot) :
            eu = 'pneu bleu'.split()
            if mot in eu : return mot + 's'
            elif mot[-2:] == 'eu' : return (mot+'x')
     
     
    >>> pluriel_eu('pneu')
    'pneus'
    >>> pluriel_eu('cheveu')
    'cheveux'
    >>> def pluriel_al(mot) :
    	al = 'banal fatal naval natal bancal bal festival chacal carnaval cal serval'.split()
    	if mot in al : return mot + 's'
    >>> def pluriel_au(mot):
    	au = 'landau sarrau'.split()
    	if mot in au : return mot + 's'
    	elif mot[-2:] == 'au' : return (mot+'x')
    >>> def pluriel_except(mot):
    	if mot== 'oeil' : return ('yeux')
    	elif mot == 'ail' : return ('aulx')
    	elif mot[-1] == 'z' or mot[-1] == 'x' : return (mot)
    >>> def _plurial(mot):
    	functions = [ pluriel_ail, pluriel_ou, pluriel_eu, pluriel_al, pluriel_au, pluriel_except ]
    	for f in functions:
    		m = f(mot)
    		if m: return m
     
     
    >>> _plurial('Hibou')
    >>> _plurial('hibou')
    'hiboux'
    >>> def plurial(mot):
    	m = mot.lower()
    	r = _plurial(m)
    	if m != mot:
    		r = r.swapcase()
    	return r
     
    >>> plurial('Hibou')
    'HIBOUX'
    >>> plurial('oeil')
    'yeux'
    >>> plurial('ail')
    'aulx'
    >>> plurial('AIL')
    'AULX'
    La méthode .swapcase() simplifie beaucoup la vie elle remet tout soit en majuscule ou en minuscule .
    Tu as utilisé ces liens wiztricks ,non ?http://docs.python.org/2/library/str...tring.swapcase https://github.com/epeli/underscore.string/pull/125 http://docs.python.org/3/library/std...l#str.swapcase

    _La méthode .title() peut être intéressante pour des phrases :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> "they're bill's friends from the UK".title()
    "They'Re Bill'S Friends From The Uk"

    _Mais le sens par exemple de l'expression suivante : 'rt'.swapcase().swapcase() == 'rt' retourne True , c'est un peu comme çà en gros que fonctionne la dernière fonction plurial(mot) et retourne une valeur du mot au pluriel.

  2. #22
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 778
    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 778
    Par défaut
    Citation Envoyé par Kurodiam Voir le message
    Tu as utilisé ces liens wiztricks, non?
    Nope.
    J'essaie de faire travailler ma mémoire. Et lorsqu'elle fait défaut,
    C'est plus rapide, plus économe en énergie, ...
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #23
    Membre très actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Par défaut
    Je sais qu'on peut traduite avec google translate .

    Mais comment tu fais si tu n'arrives pas à piger ?

    _ en fait , pour cette fonction , tu as implémenté une fonction qui prend un mot comme chaine de caractère ou type str ?

  4. #24
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 778
    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 778
    Par défaut
    Citation Envoyé par Kurodiam Voir le message
    Mais comment tu fais si tu n'arrives pas à piger ?
    Si on peut apprendre a programmer a partir d'un "tuto" écrit en français, difficile de progresser ensuite sans arriver a lire les documentations techniques. C'est un anglais assez particulier.
    Comme il "codifie" le savoir faire des informaticiens, certains mots recouvrent des "concepts" pas facile a traduire.

    Il va falloir vous y mettre.

    en fait , pour cette fonction , tu as implémenté une fonction qui prend un mot comme chaîne de caractère ou type str ?
    Par défaut, une "chaîne de caractères" est un objet de type "str".
    Comme vous débutez, apprenez a programmer "avant" de vous prendre le chou avec ces détails.
    Python le permet, profitez-en. Concentrez vous sur itérations, découpage d'un problème en petites fonctions que l'on compose, ... tant que cela n'est pas assimile, pas la peine de zieuter le reste sans avoir acquis ces bases.

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

  5. #25
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 133
    Par défaut
    Si je peux me permettre d'insérer une idée...

    Pour ce genre d'exercices, je commencerais pas voir les règles de conjugaison.

    À partir de là on peut en déduire un type de données, j'ai choisi dictionnaire et tuple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def pluriel(mot):
        EXCEPTIONS = (b'pneu', b'bleu', b'emeu')
        DICO =  {
                    (b'eau', b'au', b'eu', b'al', b'ail', b'ou'): b'x',
                    (b's', b'x', b'z'): b''
                }
        # suite du code (à compléter)
    code test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    MOTS = (b'bleu', b'taille', b'chou', b'cheveu', b'tables')
     
    for mot in MOTS:
        print(pluriel(mot))
    Résultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    fred1599@fred:~$ python3 test.py
    b'bleus'
    b'tailles'
    b'choux'
    b'cheveux'
    b'tables'
    Top chrono 5 minutes quand on commence par le bon bout... Maintenant, quand on maîtrise pas le langage, on multiplie par 5, soit 25 minutes en moyenne pour un étudiant motivé, qui fait ses recherches

    Bonne continuation.

  6. #26
    Membre très actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Par défaut
    Merci pour vos conseils

    Sinon , fred1599 , ton premier code me rappelle vaguement une liste en compréhension pour faire une matrice .
    Sinon , ton dernier code , tu as pu faire ce test à partir de l'enregistrement du fichier test .py . Donc , c'est pour cette raison , que les mots s'affichent directement au pluriel ...
    En tout cas , c'est intéressant de voir qu'avec tuple , on peut obtenir un résultat équivalent et plus court

  7. #27
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 133
    Par défaut
    Sinon , fred1599 , ton premier code me rappelle vaguement une liste en compréhension pour faire une matrice .
    Euh... non! J'ai juste créér un dictionnaire, il n'y a pas de liste compréhension

    Pour le reste j'ai pas compris où tu veux en venir ???

  8. #28
    Membre très actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Par défaut
    ok en tout cas , çà m'a fait penser à une chose que j'ai vu sur le net .
    Un dico fait grace à python , c'est pas mal

Discussions similaires

  1. [AC-2013] Fonction compte qui marche pas bien
    Par djibouli dans le forum Macros Access
    Réponses: 4
    Dernier message: 12/07/2014, 10h41
  2. Fonction qui marche pas sous IE
    Par okoweb dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/10/2010, 17h13
  3. fonction drawrect qui marche pas bien..
    Par pikaTuX dans le forum Objective-C
    Réponses: 2
    Dernier message: 22/07/2010, 13h07
  4. fonction javascript qui marche pas
    Par iam dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/02/2008, 14h46
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

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