Fonction Conjugueur Python

Résolu/Fermé
Leyo - Modifié le 25 mars 2022 à 11:28
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 25 mars 2022 à 14:41
Bonjour,

je me demandais si quelqu'un serait en mesure de corriger mon code et de m'expliquer mon erreur?

Exercice : conjugueur

Soit la liste ps des pronoms personnels sujets, et la liste ip1 des terminaisons des verbes du 1er groupe à l'indicatif présent:
ps = 'je tu il nous vous ils'.split()
ip1 = 'e es e ons ez ent'.split()


Définir conjugue(v, n) qui prend une chaîne v et un nombre n entre 1 et 6 (la personne), et qui génère la forme conjuguée correspondante;

Par exemple:

>>> conjugue('tirer', 4)
'nous tirons'

jusqu'à présent j'arrive à ça:

ps = 'je tu il nous vous ils'.split()
ip1 = 'e es e ons ez ent'.split()

def conjugue(v,n):
    v=str()
    for pro in ps :
        for n in ip1:
            n=0
        print(pro + ' ' + radical[:-2] + ip1[n])
        n+=1
conjugue("tirer",3)



je tire
tu tire
il tire
nous tire
vous tire
ils tire

donc pas du tout le résultat escompté: pouvez-vous pointer mes erreurs?
Merci
Leyo

EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Merci d'y penser dans tes prochains messages.
A voir également:

4 réponses

Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 25 mars 2022 à 11:31
Bonjour,

dans ton code, on ne voit pas où radical est initialisé , ta boucle est bizarre, notamment sur l'emploi de n

ca va mieux comme ça, je pense:
ps = 'je tu il nous vous ils'.split()
ip1 = 'e es e ons ez ent'.split()

def conjugue(v):
    for n in range(len(ps)) :
            print(ps[n] + ' ' + v[:-2] + ip1[n])

conjugue("tirer")


on prend à chaque tour les éléments de même indice dans ps et dans ip1
1
salut Phil_1857,
alors oui ton code marche (merci :) ) en revanche je dois absolument utiliser deux parametres pour appeler la fonction (v, n) ou pour v on mettrait donc un verbe du style "tirer", et le deuxieme parametre doir etre un integer, qui correspond au pronom/ terminaison. Donc si je me conjugue("tirer", 3) je dois obtenir: nous tirons. --> des idées supplémentaires?
0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 25 mars 2022 à 13:09
D'après le code que je t'ai donné, tu devrais facilement en déduire la solution:

si n est l'indice de la liste, le pronom c'est ps[n] et la terminaison, c'est ip1[n]

plus besoin de la boucle, puisqu'on connait n

avec n=3, ca donne nous tirons
0
Quand c'est trop simple^^ j'ai enfin réussi, Merci!
0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 25 mars 2022 à 14:43
OK
par contre essaie de donner des noms parlants à tes variables :

pronoms = 'je tu il nous vous ils'.split()
terminaisons = 'e es e ons ez ent'.split()

def conjugue(verbe, personne):

    print('{} {}{}'.format(pronoms[personne -1],verbe[:-2],terminaisons[personne -1]))

conjugue("tirer",4)
0