Accueil > > > VOCABULARY, RÉVISER SON VOCABULAIRE PÉDAGOGIQUEMENT
VOCABULARY, RÉVISER SON VOCABULAIRE PÉDAGOGIQUEMENT
Information sur la source
Description
cela fait un certain temps que je songeais a créer un programme qui permette de réviser son vocabulaire de manière pédagogique, c'est fait. avec vocabulary vous pouvez vous entrainer sur des evenements/dates, vocabulaire a traduire,... et même créer vos questions/reponses. Un programme en apparence simple mais en réalité assez compliqué puisque il vous ré-interrogera plus souvent sur les questions que vous ne savez pas, avec vocabulary vous apprenez votre vocabulaire à partir de 0 ! inclus dans le zip: vocabulary.py dicocreator.py +des listes note : le dicocreator est enfin fini.
Source
import os,random,sys
splash = "--------------------------------------------------------------------------------\n Programme pour apprendre du voc, des dates,...\n--------------------------------------------------------------------------------\n"
sys.stdout.write(splash) # splash de lancement
pasdico = "ce fichier n'est pas un dictionnaire de question reponses\n"
# listes reduite pour les questions
liste1 = []
liste2 = []
# liste des Q/R deja vu dans la liste reduite (liste1 et liste2)
dejavu = []
# on efface l'ecran puis on remet le splash
def newscreen():
try:
os.system('cls')
sys.stdout.write(splash)
except:
os.system('clear')
sys.stdout.write(splash)
while True:
# listes de toutes les questions reponses
indices = [] # les questions
reponses = [] # les reponses exigees
# ouverture du fichier
while True:
sys.stdout.write("\nveuillez entrez le nom du fichier a ouvrir : ")
adresse = raw_input()
if os.path.isfile(adresse) == True:
Liste=file(adresse,"r")
listebrut=Liste.readlines() # la liste des Q/R avec les \n, les 1 et 2.
Liste.close()
newscreen()
break # on a reussis a ouvrir le fichier donc on peut continuer
else:
sys.stdout.write("impossible d'ouvrir le fichier indique"+"\n")
try:
# decoupage de la liste ouverte
sys.stdout.write("\n")
for mot in listebrut:
# si le mot se finit par un retour a la ligne
if mot[-1] == "\n":
if mot[0] == "1":
indices.append(mot[1:len(mot)-1])
elif mot[0] == "2":
reponses.append(mot[1:len(mot)-1])
elif mot[0] == "#":
sys.stdout.write(mot[1:len(mot)-1]+"\n")
# sinon si il est complet
else:
if mot[0] == "1":
indices.append(mot[1:])
elif mot[0] == "2":
reponses.append(mot[1:])
elif mot[0] == "#":
sys.stdout.write(mot[len(mot)-1]+"\n")
if len(indices) != len(reponses):
sys.stdout.write(pasdico)
continue
else:
break
except:
sys.stdout.write(pasdico)
# variables pour savoir si l'utilisateur connait la liste reduite
nbok = 0
ok = True
last = "" # pour ne pas repeter deux fois de suiteles memes questions
# boucle principale
while True:
# ajout aleatoire de questions-reponses dans la liste reduite #########################################################################
if ok == True:
while True: # len(liste1) < len(indices)
questionreponse = random.randrange(len(indices)) # generation aleatoire
if (indices[questionreponse] not in liste1 and indices[questionreponse] not in dejavu) or (len(indices) >= len(dejavu)):
liste1.append(indices[questionreponse])
liste2.append(reponses[questionreponse])
nbok = 0
ok = False
if indices[questionreponse] not in dejavu:
dejavu.append(indices[questionreponse])
break # une question aleatoire nouvelle a ete trouvee
#a#################################################################################################
# generation aleatoire d'une question pour l'utilisateur
while True:
randomquestion = random.randrange(len(liste1)) # on prend une question au hasard dans la liste reduite
if (len(liste1) <= liste1.count(liste1[0])) or (liste1[randomquestion] != last): # si il n'y a qu'un seul type de question ou qu'une bonne question a ete trouvee
break
last = liste1[randomquestion]
sys.stdout.write("\nQuestion : " + liste1[randomquestion] + " : ")
saisie = raw_input()
# on evalue si la reponse de l'utilisateur est juste ou pas
if liste2[randomquestion] in saisie: # si c'est la bonne reponse
sys.stdout.write("bravo vous avez trouve la bonne reponse"+"\n")
nbok += 1
liste1.remove(liste1[randomquestion]) # on supprime une valeur car il sait la question
liste2.remove(liste2[randomquestion])
else: # si ce n'est pas la bonne reponse
if len(liste1) > 1:
liste1.append(liste1[randomquestion])
liste2.append(liste2[randomquestion])
sys.stdout.write("perdu, la bonne reponse etait : "+liste2[randomquestion]+"\n")
raw_input() # on s'assure qu'il a bien compris
# on nettoie l'ecran pour effacer les reponses
newscreen()
# savoir si on ajoute une question ou pas
if (nbok > len(liste1)) or (len(liste1) <= liste1.count(liste1[0])):
ok = True
else:
ok = False
Conclusion
bonnes révisions, partagez vos listes et mettez des commentaires !
Historique
- 23 janvier 2010 12:32:30 :
- Ajout des dico Pere Goriot et Pierre et Jean
Amélioration de dicocreator
- 25 janvier 2010 18:30:29 :
- optimisation de vocabulary, corrections de bugs de dicocreator, + listes
- 01 février 2010 13:24:39 :
- Optimisations + dico mots de lisaison
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
[WP7] AJOUTER DES IMAGES DANS LA MEDIA LIBRARY D'UN WINDOWS PHONE 7[WP7] AJOUTER DES IMAGES DANS LA MEDIA LIBRARY D'UN WINDOWS PHONE 7 par Audrey
L'émulateur Windows Phone 7, fourni avec la version Beta des outils développeurs n'inclut aucune image dans sa bibliothèque. Pas très pratique de tester son application lorsque l'on souhaite que l'utilisateur puisse choisir une image présente dans le télé...
Cliquez pour lire la suite de l'article par Audrey VIVE LES MOCKS ET LES POCOSVIVE LES MOCKS ET LES POCOS par vLabz
J'observe régulièrement autour de moi de la confusion à propos de ces deux termes et j'aimerais juste rappeler ce qu'ils signifient. Je ne suis bien sûr pas le mieux placé pour faire une leçon mais je vais faire de mon mieux pour mettre en valeur ce q...
Cliquez pour lire la suite de l'article par vLabz [WF4] WORKFLOW AND CUSTOM ACTIVITIES - BEST PRACTICES (4/5)[WF4] WORKFLOW AND CUSTOM ACTIVITIES - BEST PRACTICES (4/5) par JeremyJeanson
Vendredi dernier Microsoft a publié le quatrième épisode des bonnes pratiques pour coder ses activités custom dans WF4 : endpoint.tv - Workflow and Custom Activities - Best Practices (Part 4) . Tout comme pour les précédents épisodes, j'ai pris le temps d...
Cliquez pour lire la suite de l'article par JeremyJeanson DéVELOPPEMENT MOBILE : .NET COMPACT FRAMEWORK & LIMITATIONSDéVELOPPEMENT MOBILE : .NET COMPACT FRAMEWORK & LIMITATIONS par Pi-R
Introduction :
Le développement d'applications mobiles est quelque peu différent du développement d'applications sous Windows. En effet, le développement d'applications mobiles se base sur le .NET Compact Fra...
Cliquez pour lire la suite de l'article par Pi-R IPHONE VERSUS WP7 CODINGIPHONE VERSUS WP7 CODING par Nicolas
Je relais une présentation sur slideshare.net, qui compare le développement sur Iphone et Windows Phone 7, qui ma fait sourire. I phone versus windows phone 7 coding View more presentations from www.donburnett.com. J'aurais bien aimé une comparai...
Cliquez pour lire la suite de l'article par Nicolas
Logiciels
Xilisoft HD Vidéo Convertisseur 6 (6.0.3.0421)XILISOFT HD VIDéO CONVERTISSEUR 6 (6.0.3.0421)Xilisoft HD Vidéo Convertisseur est un outil professionnel de conversion HDTV, conçu pour transfo... Cliquez pour télécharger Xilisoft HD Vidéo Convertisseur 6 Xilisoft MP4 Convertisseur 6 (6.0.2.0415)XILISOFT MP4 CONVERTISSEUR 6 (6.0.2.0415)Xilisoft MP4 Convertisseur est un outil puissant pour la conversion de vidéo MP4, qui peut conver... Cliquez pour télécharger Xilisoft MP4 Convertisseur 6 Vade Retro Desktop (3.03)VADE RETRO DESKTOP (3.03)Le logiciel antispam Vade Retro pour Microsoft Outlook®, Outlook Express® et Windows Mail®(Vista)... Cliquez pour télécharger Vade Retro Desktop Malwarebytes Anti Malwares (1.46)MALWAREBYTES ANTI MALWARES (1.46)Malwarebytes' Anti-Malware est un anti-malware qui peut éliminer même les plus avancés des logic... Cliquez pour télécharger Malwarebytes Anti Malwares
|