Files
ola5doc/content/.stversions/leon_lenclos/sources/analogie/analogie~20171217-121035.py
T

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()