Files
ola5doc/content/leon_lenclos/sources/analogie/analogie.py
T

76 lines
1.8 KiB
Python
Raw 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()