| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | #!/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 Mertensimport csvimport randomdef 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.motmain()
 |