Advertisement
Guest User

Untitled

a guest
Feb 7th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.48 KB | None | 0 0
  1. #!/usr/bin/python3.4
  2. # -*-coding:Utf-8 -*
  3.  
  4. import sys
  5.  
  6. def pluriel(mot) :
  7. motmin = mot.lower() # permet a mon programme de gerer les donnees d entree en majuscules et minuscules
  8. ail = 'bail corail émail fermail gemmail soupirail travail vantail ventil vitrail'.split()
  9. if motmin in ail : return mot[0:-2] + 'ux'
  10.  
  11. al = 'anténatal aval bal bancal banal barbital cal cantal caracal carnaval cérémonial chacal chloral choral corral dual emmental emmenthal étal eurosignal fatal festival floréal furfural gal galgal gardénal gavial gayal germinal hectopascal kraal marial marshal mattoral minerval mistral narval natal naval néonatal nopal pal pascal penthiobarbital penthotal pipéronal postnatal prairial prénatal pyridoxal quetzal récital régal rétinal revival rial rorqual roseval sabal santal saroual serval sial sisal sonal spiritual tagal tergal tincal trial val véronal virginal'.split() # vraiment beaucoup de mots se terminant en -al au singulier sont des exceptions et se terminent en -als au pluriel au lieu de -aux
  12. if motmin in al : return mot + 's'
  13.  
  14. au = 'grau landau sarrau senau unau'.split()
  15. if motmin in au : return mot + 's'
  16.  
  17. eu = 'bleu émeu enfeu pneu'.split()
  18. if motmin in eu : return mot + 's'
  19.  
  20. ou = 'bijou caillou chou genou hibou pou ripou'.split()
  21. if motmin in ou : return mot + 'x'
  22.  
  23. invariants = 'ex-aequo gaz'.split() # ici pas la peine de mettre les mots finissant par -s et -x (comme riz ou roux) au singulier une exception a la fin les gere et retourne donc le mot sans rien modifier
  24. if motmin in invariants : return mot
  25.  
  26. if motmin == 'ail' : return 'aulx'
  27. if motmin == 'madame' : return 'mesdames'
  28. if motmin == 'monsieur' : return 'messieurs'
  29. if motmin == 'oeil' : return 'yeux'
  30. if motmin == 'vieil' : return 'vieux'
  31.  
  32. if motmin[-2:] == 'al' : return mot[0:-1] + 'ux'
  33.  
  34. if motmin[-2:] == 'au' : return mot + 'x'
  35.  
  36. if motmin[-2:] == 'eu' : return mot + 'x'
  37.  
  38. if motmin[-1] == 'x' : return mot
  39.  
  40. if motmin[-1] == 's' : return mot
  41.  
  42. # j aurai pu regrouper certaines instructions, ou on ajoute le meme radical par exemple
  43. # les deux precedentes avec 'x' or 's' mais je ne le fais pas par souci de lisibilite
  44. # le code est simple mais je laisse quand meme des sauts de lignes pour la lisibilite
  45. # encore une fois
  46.  
  47. return mot + 's'
  48.  
  49. if len(sys.argv) > 1 : print pluriel(sys.argv[1])
  50. else : exit('argument manquant : mot au singulier')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement