[python]Découper une variable récupérée

Résolu/Fermé
lonewolfs Messages postés 51 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 17 octobre 2009 - 10 août 2007 à 15:42
lonewolfs Messages postés 51 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 17 octobre 2009 - 10 août 2007 à 18:01
Bonjour a tous,

Je viens de coder un petit programme en python pour que ma fille puisse reviser ses conjugaisons.
Mais voila, ce programme n'est pas très interactif, et je voudrais que ma fille puisse entrer le verbe qu'elle souhaite conjuguer mais pour cela, il faudrait que je puisse enlever les deux dernières lettre du verbe entré et lé, j'avoue que je suis un perdu. En gros: entrée : "chanter", recuperer "chant"

Je vous remercie par avance de votre aide et vous joint mon debut de code, si ca peut aider ou donner des idées à certain.

Merci

#!/bin/bash
# -*- coding: utf-8 -*-
present=["e","es","e","ons","ez","ent"]
passe_simple=["ai","as","a","âmes","âtes","èrent"]
imparfait=["ais","ais","ait","ions","iez","aient"]
futur_simple=["erai","eras","era","erons","erez","eront"]
present1=["is","is","it","issons","issez","issent"]
passe_simple1=["is","is","it","îmes","îtes","irent"]
imparfait1=["issais","issais","issait","issions","issiez","issaient"]
futur_simple1=["irai","iras","ira","irons","irez","iront"]
present2=["s","s","","ons","ez","ent"]
passe_simple2=["is","is","it","îmes","îtes","irent"]
imparfait2=["ais","ais","ait","ions","iez","aient"]
futur_simple2=["rai","ras","ra","rons","rez","ront"]

def chanter(base):
	print "Ecris le verbe chanter"
	print "je chant... :"
	je=raw_input()
	if (je!= "je chant"+base [0]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : je chant"+base[0]
	else:
		print "Bravo ! Bonne réponse"
	print "tu chant..."
	tu=raw_input()
	if (tu!= "tu chant"+base [1]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : tu chant"+base[1]
	else:
		print "Bravo ! Bonne réponse"
	print "il chant..."
	il=raw_input()
	if (il!= "il chant"+base [2]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : il chant"+base[2]
	else:
		print "Bravo ! Bonne réponse"
	print "nous chant..."
	nous=raw_input()
	if (nous!= "nous chant"+base [3]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : nous chant"+base[3]
	else:
		print "Bravo ! Bonne réponse"
	print "vous chant..."
	vous=raw_input()
	if (vous!= "vous chant"+base [4]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : vous chant"+base[4]
	else:
		print "Bravo ! Bonne réponse"
	print "ils chant..."
	ils=raw_input()
	if (ils!= "ils chant"+base [5]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : ils chant"+base[5]
	else:
		print "Bravo ! Bonne réponse"

def finir(base):
	print "Ecris le verbe finir"
	print "je fin... :"
	je=raw_input()
	if (je!= "je fin"+base [0]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : je fin"+base[0]
	else:
		print "Bravo ! Bonne réponse"
	print "tu fin..."
	tu=raw_input()
	if (tu!= "tu fin"+base [1]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : tu fin"+base[1]
	else:
		print "Bravo ! Bonne réponse"
	print "il fin..."
	il=raw_input()
	if (il!= "il fin"+base [2]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : il fin"+base[2]
	else:
		print "Bravo ! Bonne réponse"
	print "nous fin..."
	nous=raw_input()
	if (nous!= "nous fin"+base [3]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : nous fin"+base[3]
	else:
		print "Bravo ! Bonne réponse"
	print "vous fin..."
	vous=raw_input()
	if (vous!= "vous fin"+base [4]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : vous fin"+base[4]
	else:
		print "Bravo ! Bonne réponse"
	print "ils fin..."
	ils=raw_input()
	if (ils!= "ils fin"+base [5]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : ils fin"+base[5]
	else:
		print "Bravo ! Bonne réponse"

def fendre(base):
	print "Ecris le verbe fendre"
	print "je fend... :"
	je=raw_input()
	if (je!= "je fend"+base [0]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : je fend"+base[0]
	else:
		print "Bravo ! Bonne réponse"
	print "tu fend..."
	tu=raw_input()
	if (tu!= "tu fend"+base [1]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : tu fend"+base[1]
	else:
		print "Bravo ! Bonne réponse"
	print "il fend..."
	il=raw_input()
	if (il!= "il fend"+base [2]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : il fend"+base[2]
	else:
		print "Bravo ! Bonne réponse"
	print "nous fend..."
	nous=raw_input()
	if (nous!= "nous fend"+base [3]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : nous fend"+base[3]
	else:
		print "Bravo ! Bonne réponse"
	print "vous fend..."
	vous=raw_input()
	if (vous!= "vous fend"+base [4]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : vous fend"+base[4]
	else:
		print "Bravo ! Bonne réponse"
	print "ils fend..."
	ils=raw_input()
	if (ils!= "ils fend"+base [5]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : ils fend"+base[5]
	else:
		print "Bravo ! Bonne réponse"
print "*** But de l'exercice *** : Apprendre les conjugaisons"
print ""
print "*** Commencons par le present des verbes du premier groupe ***"
print ""
chanter(present)
print ""
print "*** Continuons par l'imparfait ***"
print ""
chanter(imparfait)
print ""
print "*** Continuons par le passe_simple ***"
print ""
chanter(passe_simple)
print ""
print "*** Finissons par le futur simple ***"
print ""
chanter(futur_simple)
print ""
print ""
print "*** Continuons par le present des verbes du deuxième groupe ***"
print ""
print ""
finir(present1)
print ""
print "*** Continuons par l'imparfait ***"
print ""
finir(imparfait1)
print ""
print "*** Continuons par le passe_simple ***"
print ""
finir(passe_simple1)
print ""
print "*** Finissons par le futur simple ***"
print ""
finir(futur_simple1)
print ""
print ""
print "*** Continuons par le present des verbes du troisième groupe ***"
print ""
print ""
fendre(present2)
print ""
print "*** Continuons par l'imparfait ***"
print ""
fendre(imparfait2)
print ""
print "*** Continuons par le passe_simple ***"
print ""
fendre(passe_simple2)
print ""
print "*** Finissons par le futur simple ***"
print ""
fendre(futur_simple2)

A voir également:

7 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
10 août 2007 à 16:10
------- il faudrait que je puisse enlever les deux dernières lettre du verbe entré et lé, j'avoue que je suis un perdu. En gros: entrée : "chanter", recuperer "chant" ------

Tu peux découper une chaine comme ceci:
chaine[debut:longeur]
Le début ou la fin peuvent être implictes. Si la longueur est négative, alors les n caractères de la fin seront ignorés.

verbe = "chanter"
print verbe[:-2]
#affiche chant


------Je viens de coder un petit programme en python pour que ma fille puisse reviser ses conjugaisons. --------

:-)
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
10 août 2007 à 16:18
Tu sais que tu peux factoriser ton code facilement ici.

Par exemple, la fonction finir:
def finir(base):
    pronoms = ("je", "tu", "il", nous", "vous", ils")
    print "Ecris le verbe finir"

    for i in range(6):
         print "%s fin... :" % pronoms[i]
	 rep=raw_input()
         if (rep!= base [i]):
            print "Désolé, ce n'est pas la bonne réponse"
            print "La bonne réponse est : %s fin%s" % (pronoms[i], base[i])
	 else:  
            print "Bravo ! Bonne réponse"
0
lonewolfs Messages postés 51 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 17 octobre 2009 5
10 août 2007 à 16:36
Merci Killian,

je m'en vais faire bon usage de tes posts.

Je ne connaissais pas la technique qui permet de factoriser, et il est vrai qu'elle est bien.

Mais j'avoue que mon niveau en python a du s'arreter juste avant la factorisation.

Merci encore.

lonewolfs

Edit : je sais que je suis peut etre un gros naze mais pour mon info personnel, ca veut dire quoi ce sigle :" :-)" ?
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
10 août 2007 à 16:47
On peut souvent regouper des instructions similaires en une boucle.

Ce sigle c'est un smiley, un petit sourire :-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lonewolfs Messages postés 51 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 17 octobre 2009 5
10 août 2007 à 16:51
Merci encore beaucoup Killian

Je te souhaite une bonne soirée et un bon week end

lonewolfs
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
10 août 2007 à 17:13
Merci, bonne soirée :-)
0
lonewolfs Messages postés 51 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 17 octobre 2009 5
10 août 2007 à 18:01
Je viens de terminer le premier jet de ce programme de revision de conjugaison (grace à ton aide). Il est encore incomplet mais il a l'air de fonctionner.

Je transmet le code source si ca interesse quelqu'un. Je repète qu'il n'est pas encore terminé. Merci encore de ton aide. Bye

#!/bin/bash
# -*- coding: utf-8 -*-
present=["e","es","e","ons","ez","ent"]
passe_simple=["ai","as","a","âmes","âtes","èrent"]
imparfait=["ais","ais","ait","ions","iez","aient"]
futur_simple=["erai","eras","era","erons","erez","eront"]
present1=["is","is","it","issons","issez","issent"]
passe_simple1=["is","is","it","îmes","îtes","irent"]
imparfait1=["issais","issais","issait","issions","issiez","issaient"]
futur_simple1=["irai","iras","ira","irons","irez","iront"]
present2=["s","s","","ons","ez","ent"]
passe_simple2=["is","is","it","îmes","îtes","irent"]
imparfait2=["ais","ais","ait","ions","iez","aient"]
futur_simple2=["rai","ras","ra","rons","rez","ront"]

def chanter(base):
	print "Ecris le verbe :",verbe
	print "je ",v,"... :"
	je=raw_input()
	if (je!="je "+v+base[0]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : je",v+base[0]
	else:
		print "Bravo ! Bonne réponse"
	print "tu ",v,"..."
	tu=raw_input()
	if (tu!= "tu "+v+base [1]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : tu",v+base[1]
	else:
		print "Bravo ! Bonne réponse"
	print "il ",v,"..."
	il=raw_input()
	if (il!= "il "+v+base [2]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : il ",v+base[2]
	else:
		print "Bravo ! Bonne réponse"
	print "nous ",v,"..."
	nous=raw_input()
	if (nous!= "nous "+v+base [3]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : nous ",v+base[3]
	else:
		print "Bravo ! Bonne réponse"
	print "vous ",v,"..."
	vous=raw_input()
	if (vous!= "vous "+v+base [4]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : vous ",v+base[4]
	else:
		print "Bravo ! Bonne réponse"
	print "ils ",v,"..."
	ils=raw_input()
	if (ils!= "ils "+v+base [5]):
		print "Désolé, ce n'est pas la bonne réponse"
		print "La bonne réponse est : ils ",v+base[5]
	else:
		print "Bravo ! Bonne réponse"

print "*** But du jeu *** : apprend à conjuger"
print ""
print "Entre le verbe que tu veux conjuger :"
verbe=raw_input()
v=verbe[:-2]
v1=verbe[-2:]
if (v1=="er" and verbe!="manger"):
	print ""
	print "*** Présent de l'indicatif ***"
	print ""
	chanter(present)
	print "*** Passe simple ***"
	print ""
	chanter(passe_simple)
	print "*** Imparfait ***"
	print ""
	chanter(imparfait)
	print "*** Futur simple ***"
	print ""
	chanter(futur_simple)

if (v1=="ir" and verbe!="avoir"):
	print ""
	print "*** Présent de l'indicatif ***"
	print ""
	chanter(present1)
	print "*** Passe simple ***"
	print ""
	chanter(passe_simple1)
	print "*** Imparfait ***"
	print ""
	chanter(imparfait1)
	print "*** Futur simple ***"
	print ""
	chanter(futur_simple1)

if (v1=="re" and v1!="être"):
	print ""
	print "*** Présent de l'indicatif ***"
	print ""
	chanter(present2)
	print "*** Passe simple ***"
	print ""
	chanter(passe_simple2)
	print "*** Imparfait ***"
	print ""
	chanter(imparfait2)
	print "*** Futur simple ***"
	print ""
	chanter(futur_simple2)

else:
	print "Ce programme ne peut acceder a votre demande."
	print "Désolé"
raw_input()


ps : je regarde la factorisation un peu plus tard car la j'ai les yeux qui collent (j'y suis depuis déja un moment) Merci et bye
0