Probleme de lotto - Python - Programmation
Marsh Posté le 17-12-2007 à 14:07:11
mais comment tu te débrouilles pour faire ça ?
poste ton code pour voir
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" ???
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
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
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
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