begin process at 2010 07 29 15:42:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caratère

 > VOCABULARY, RÉVISER SON VOCABULAIRE PÉDAGOGIQUEMENT

VOCABULARY, RÉVISER SON VOCABULAIRE PÉDAGOGIQUEMENT


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Chaîne de caratère Classé sous :vocabulary, pedagogie, reviser, vocabulaire, pedagogiquement Niveau :Débutant Date de création :22/01/2010 Date de mise à jour :01/02/2010 13:24:38 Vu / téléchargé :1 369 / 76

Auteur : Clempython

Ecrire un message privé
Site perso
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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
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 !

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 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

ANTILOG, MORT AUX .LOG
Source avec Zip Source avec une capture DIVISIONS AVEC PRÉCISION RÉGLABLE
Source avec Zip Source avec une capture PROGRAMME POUR LES MOTS CROISÉS
Source avec Zip Source avec une capture LE MOT LE PLUS LONG PAR DICO

 Sources de la même categorie

Source avec Zip Source avec une capture GÉNÉRATEUR DE PASSWORD par PlugnPlay666
Source avec Zip Source avec une capture PROGRAMME POUR LES MOTS CROISÉS par Clempython
CHANGEMENT DE CASSE par linkid
Source avec Zip CONCATÉNER DES FICHIERS TEXTES par amaury74
Source avec une capture TRADUCTEUR LEET SPEAK par hazkaal

Commentaires et avis

Commentaire de raygold le 26/01/2010 20:18:54 9/10

C'est un bon logiciel. Il n'est pas très beau mais très efficace

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Juillet 2010
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales