Probleme de lotto

Probleme de lotto - Python - Programmation

Marsh Posté le 17-12-2007 à 13:57:57    

Bonjour a tous et a toutes...Pour mon examen de noel j'ai eu droit a la programmation d'un lotto.Il consiste a encoder des tirage, date, numéros 1 2 3 ... jusque la ca va c'est apres que j'ai un petit probleme.Le programme doit me donner combien de fois les numeros de 1à 42 sont sortis.Ma fonction fonctionne mis apart qu'il me donne les numéros sorti et non les chiffres. ex: j'encode 1 42 34 23 2 6 8 il me dis que le numeros 1 est sorti une fois ok le numeros 2 est sorti 3 fois pas ok le numero 3 est sorti 2 fois et ainsi dessuite il devrais me donner 1 sorti 1 fois,2 sorti 1 fois,6 une fois,8 une fois,23 une fois ect...Le tirage de debut je le met dans une liste grace au liste.append(numero) et j'ecris tout sa grace au of.write(str(liste)) comment faire pour qu'il lise les deux nombre en meme temps et non séparement???Si quelqu'un peut m'aider se serait génial...Merci

Reply

Marsh Posté le 17-12-2007 à 13:57:57   

Reply

Marsh Posté le 17-12-2007 à 14:07:11    

mais comment tu te débrouilles pour faire ça ? [:mlc]
poste ton code pour voir

Reply

Marsh Posté le 17-12-2007 à 14:34:25    

il compte le nombre de fois où il trouve 2 dans "1 42 34 23 2 6 8" ???

Reply

Marsh Posté le 17-12-2007 à 14:39:11    

#-*-coding:Latin-1-*-
from random import randrange
nomF=raw_input('Nom du fichier a traiter : ')
 
def EncoderTirage():
 "Encodage du tirage"
 ofi=open(nomF,"a" )
 liste=[]
 while 1:
  while 1:
   numeros=['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42']
   date=raw_input("Encoder une date(j/m/a): " )
   if date=="":
    break
   print "Encoder 6 numeros et un numero complementaire(1 a 42):"
   num1=raw_input("Entrez le 1ere numero: " )
   if num1 in numeros:
    liste.append(num1)
   else:
    print 'recommencer en entrant des chiffre de 1 a 42'
    num1=raw_input("Entrez le 1ere numero: " )
    liste.append(num1)
   num2=raw_input("Entrez le 2eme numeros: " )
   if num2 in numeros:
    liste.append(num2)
   else:
    print 'recommencer en entrant des chiffre de 1 a 42'
    num2=raw_input("Entrez le 2eme numeros: " )
    liste.append(num2)
   num3=raw_input("Entrez le 3eme numeros: " )
   if num3 in numeros:
    liste.append(num3)
   else:
    print 'recommencer en entrant des chiffre de 1 a 42'
    num3=raw_input("Entrez le 3eme numeros: " )
    liste.append(num3)
   num4=raw_input("Entrez le 4eme numeros: " )
   if num4 in numeros:
    liste.append(num4)
   else:
    print 'recommencer en entrant des chiffre de 1 a 42'
    num4=raw_input("Entrez le 4eme numeros: " )
    liste.append(num4)
   num5=raw_input("Entrez le 5eme numeros: " )
   if num5 in numeros:
    liste.append(num5)
   else:
    print 'recommencer en entrant des chiffre de 1 a 42'
    num5=raw_input("Entrez le 5eme numeros: " )
    liste.append(num5)
   num6=raw_input("Entrez le 6eme numeros: " )
   if num6 in numeros:
    liste.append(num6)
   else:
    print 'recommencer en entrant des chiffre de 1 a 42'
    num6=raw_input("Entrez le 6eme numeros: " )
    liste.append(num6)
   numC=raw_input("Entrez le numero complementaire: " )
   if numC in numeros:
    liste.append(numC)
   else:
    print 'recommencer en entrant des chiffre de 1 a 42'
    numC=raw_input("Entrez le numero complementaire: " )
    liste.append(numC)
   rep=raw_input("OK pour sauver? Oui(o),Non(n):" )
   if rep=="o":
    ofi.write("Date:"+date+"~~~"+"Numeros:"+str(liste)+"\n" )
   if rep=='n':
    break
  if date=="":
   break
  ofi.close()
   
def ObtenirTirage():
 ofi=open("tampon","a" )
 cpt=0
 nbr=['6','7','8','9','10','11','12','13','14','15','16','17','18','19','20']
 while 1:
  nbrNum=raw_input("Entrez le nombre de numeros que vous voulez (6 a 20): " )
  if nbrNum=='':
   break
  if nbrNum in nbr:
   nbrSer=raw_input("Entrez le nombre de serie(s) que vous voulez: " )
   if nbrSer=='':
    break
   while cpt<float(nbrSer):
    date=raw_input("Encodez une date(j/m/a): " )
    if date=="":
     break
    cpt1=0
    tirage=[]
    while cpt1<float(nbrNum):
     tir=randrange(1,43)
     tirage.append(tir)
     cpt1=cpt1+1
    ofi.write("Date:"+date+"~~~"+"Numeros:"+str(tirage)+"\n" )
    cpt=cpt+1
  else:
   print 'recommencer en entrant des chifres de 6 a 20'
 
def ConsTirageChoisi():
 ofi=open(nomF,"r" )
 while 1:
  Tirage=ofi.readline()
  if Tirage=="":
   break
  print Tirage
 
def AfficherTout():
 ofi=open("tampon","r" )
 while 1:
  Tirage=ofi.read()
  if Tirage=="":
   break
  print Tirage
 
def AfficherSortie():
 print  "VOICI LES RESULTATS OBTENUS:"
 of2=open(nomF,"r" )
 ligne=of2.read()
 n=0
 while n<2:
  if n==0:
   nombre1,nombre2=1,22
  else:
   nombre1,nombre2=22,43
  print "les diff�rents numeros:",
  for i in range(nombre1,nombre2):
   print "%2g"%(i),
  print
  print "cbm de fois le num est:",
  for i in range(nombre1,nombre2):
   cpt=0
   for j in range(15,len(ligne)):
    if str(i) == ligne[j]:
     cpt=cpt+1
   print "%2g"%(cpt),
  print
  print
  n=n+1
 of2.close()
 
while 1:
 "Menu Principal"
 choix = raw_input('°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n'
 'Entrez: \n' + \
 '"a" Encoder un tirage  \n' + \
 '"b" Obtenir un tirage  \n' +\
 '"c" Consulter les tirages \n'+\
 '"d" Sortir du programme \n'+\
 'Votre choix? \n'
 '°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n')
 if choix=="a":
  EncoderTirage()
 if choix=="b":
  ObtenirTirage()
 if choix=="c":
  while 1:
   "Menu Secondair"
   choix = raw_input('°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n'
   'Entrez: \n' + \
   '"a" Consulter le fichier contenant les tirages du lotto  \n' + \
   '"b" Consulter le fichier contenant vos tirages  \n' +\
   '"c" Revenir au menu principal \n'+\
   'Votre choix? \n'
   '°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n')
   if choix =="a":
    while 1:
     "Menu Secondair"
     choix=raw_input(
     '°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n'
     'Entrez: \n' + \
     '"a" Afficher tous les tirages  \n' + \
     '"b" Afficher le nombre de sorties des numeros \n' +\
     '"c" Revenir au menu precedent \n'+\
     'Votre choix? \n'
     '°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n')
     if choix=="a":
      AfficherTout()
     if choix=="b":
      AfficherSortie()
     if choix=="c":
      break
   if choix=="b":
    ConsTirageChoisi()
   if choix=="c":
    break
 if choix=="d":
  break

Reply

Marsh Posté le 17-12-2007 à 14:41:26    

donc voila tous mon programme... la fonction AfficherSortie() affiche normalement le nombre de fois qu'un numeros a ete encoder dans la fonction encoder. Mais il ne compte pas les nombres de deux chiffre.Il les compte séparément. ex : 42 il compte un 4 et un 2

Reply

Marsh Posté le 17-12-2007 à 14:51:03    

1. Utiliser une balise code pour avoir la coloration syntaxique, là c'est illisible
2. Apprendre à utiliser for pour faire des boucles au lieu d'écrire 6 fois la même chose
3. Apprendre à utiliser if/elif/else aussi
4. et le fait que les entiers ça existe
 
Pour commencer


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 17-12-2007 à 15:39:33    

[:daplopbot]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed