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 :

un programme qui tourne pas


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 3
    Par défaut un programme qui tourne pas
    la question c'est de créer une fonction def pluriel() qui donne le pluriel d'un nom (mot) quelque soit le mot ou le nom et sa doit marcher si le mot est en miniscule ou en majuscule.

    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
    >>> def pluriel(mot):
    	al = 'banal fatal naval natal bancal bal festival chacal carnaval cal serval'.split()
    	au = 'landau sarrau'.split()
    	eu = 'pneu bleu'.split()
    	ou = 'hibou chou genou caillou pou bijou'.split()
    	ail= 'bail corail émail soupirail travail ventail vitrail'.split()
    	if mot in al:
    		return mot + 's'
    	elif mot[-2:] == 'al' :
    		return mot[:-1] + 'ux'
    	elif mot in au :
    		return mot +'s'
    	elif mot[-2:] == 'au' :
    		return mot + 'ux'
    	elif mot in eu :
    		return mot +'s'
    	elif mot in ou :
    		return mot + 'x'
    	elif mot in ail :
    		return mot[0 : -2] + 'ux'
    	elif mot [-1:] == 's' or 'x' or 'z' :
    		return mot
    	elif mot == 'oeil' :
    		return 'yeux'
    	else :  return mot + 's'
     
     
    >>> 
    >>> pluriel('journal')
    'journaux'
    >>> pluriel('travail')
    'travaux'
    >>> pluriel('oeil')
    'oeil'
    >>> pluriel('riz')
    'riz'
    >>> pluriel('tomate')
    'tomate'
    j'ai constaté que il ma pas donné le pluriel du mot 'oeil' et celui de tomate .
    j' aimerai bien que vous m'aidiez à corriger ce problème . merci
    et de me donner une ideé pour le pluriel des mots en majiscule

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Par défaut
    J'ai trouvé, en fait le problème est de le elif mot [-1:] == 's' or 'x' or 'z'. En fait, python interprète ça comme : sinon, si la dernière lettre du mot est un s, ou si 'x', ou si 'z'. Or 'x' sont toujours vrais, donc la condition est toujours remplie et le mot est renvoyé tel quel et les autres tests ne sont pas effectués. Voilà la bonne 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
    18
    19
    20
    21
    22
    23
    24
    25
    def pluriel(mot):
    	al = 'banal fatal naval natal bancal bal festival chacal carnaval cal serval'.split()
    	au = 'landau sarrau'.split()
    	eu = 'pneu bleu'.split()
    	ou = 'hibou chou genou caillou pou bijou'.split()
    	ail= 'bail corail émail soupirail travail ventail vitrail'.split()
    	if mot in al:
    		return mot + 's'
    	elif mot[-2:] == 'al' :
    		return mot[:-1] + 'ux'
    	elif mot in au :
    		return mot +'s'
    	elif mot[-2:] == 'au' :
    		return mot + 'ux'
    	elif mot in eu :
    		return mot +'s'
    	elif mot in ou :
    		return mot + 'x'
    	elif mot in ail :
    		return mot[0 : -2] + 'ux'
    	elif mot [-1:]=='s' or mot [-1:]=='x' or mot [-1:]=='z' :
    		return mot
    	elif mot == 'oeil' :
    		return 'yeux'
    	else :  return mot + 's'
    PS : pour la question subsidiaire, les méthodes upper et lower de la classe str permettent respectivement de mettre une chaîne en majuscule ou en minuscule. isupper te permettre aussi de savoir si la chaîne est en majuscule. Avec tout ça, tu ne devrais pas avoir de mal à gérer les majuscules.

Discussions similaires

  1. programme qui tourne sous win98 et plante sous win xp
    Par serrepate dans le forum Windows
    Réponses: 7
    Dernier message: 24/06/2007, 13h13
  2. ventilateur du proc qui tourne pas
    Par charaf dans le forum Composants
    Réponses: 5
    Dernier message: 08/06/2007, 23h35
  3. chemin d'acces du programme qui tourne
    Par kanea_iza dans le forum Windows
    Réponses: 3
    Dernier message: 23/04/2007, 09h03
  4. Quelle alternative a VS2005 qui tourne pas sous Vista ?
    Par Cazaux-Moutou-Philippe dans le forum Visual Studio
    Réponses: 10
    Dernier message: 06/03/2007, 15h59
  5. Réponses: 4
    Dernier message: 31/05/2006, 15h00

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