69 lines
1.7 KiB
Python
69 lines
1.7 KiB
Python
#!/usr/bin/python
|
|
# -*- coding: utf-8 -*-
|
|
import csv
|
|
import random
|
|
|
|
|
|
def main():
|
|
|
|
# on va creer une list d'objet Nom
|
|
mots = []
|
|
with open("Lexique382.txt") as lexique:
|
|
# on lit dans un "tab separated values"
|
|
lexique = csv.reader(lexique, delimiter='\t')
|
|
for raw in lexique:
|
|
# on y cherche les noms
|
|
if raw[3] == "NOM":
|
|
# et on les range dans mots
|
|
mots.append(Nom(raw[0], raw[4], raw[5]))
|
|
|
|
# on imprime la phrase
|
|
|
|
output = "%s %s ce que %s %s." % \
|
|
(random.choice(mots).det_mot_vrb(), \
|
|
random.choice(mots).pre_mot(), \
|
|
random.choice(mots).det_mot_vrb(), \
|
|
random.choice(mots).pre_mot())
|
|
output = output.capitalize()
|
|
print(output)
|
|
|
|
class Nom():
|
|
|
|
def __init__(self, mot, genre, nombre):
|
|
self.mot = mot
|
|
self.genre = genre
|
|
self.nombre = nombre
|
|
|
|
def det(self):
|
|
if self.nombre == 'p':
|
|
return "les "
|
|
elif self.mot[0] in ['a','à','e','é','è','ê','i','o','u','y','h']:
|
|
return "l'"
|
|
elif self.genre == 'f':
|
|
return "la "
|
|
else:
|
|
return "le "
|
|
def pre(self):
|
|
if self.det() == "les ":
|
|
return "aux "
|
|
if self.det() == "le ":
|
|
return "au "
|
|
if self.det() == "la ":
|
|
return "à la "
|
|
if self.det() == "l'":
|
|
return "à l'"
|
|
|
|
def vrb(self):
|
|
if self.nombre == "p":
|
|
return "sont"
|
|
else:
|
|
return "est"
|
|
|
|
def det_mot_vrb(self):
|
|
return self.det() + self.mot + " " + self.vrb()
|
|
|
|
def pre_mot(self):
|
|
return self.pre() + self.mot
|
|
|
|
main()
|