Files

76 lines
1.8 KiB
Python
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Analogie
# Léon Lenclos 2017 (leon.lenclos(à)gmail.com)
# Workshop OLA#5 à Synesthésie
# organisé par Bachir Soussi Chiadmi avec An Mertens
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()