INFO PYTHON 2.7 TEST BTS1 A 17/12/13
PARTIE A
Voici un script écrit en Python 2.7
from random import*
def hasard():
cochage=[12,13,32,17,41,48]
L=[i for i in range(1,50)]
Francaisedesjeux=[]
m=len(Francaisedesjeux)
for i in range(6):
a=choice(L)
Francaisedesjeux.append(a)
L.remove(a)
print " Le tirage de la française des jeu est :",Francaisedesjeux
print "Votre tirage est : ",cochage
bonsnumero=0
for i in range(6):
if cochage[i] in Francaisedesjeux:
print cochage[i]," est bon"
bonsnumero=bonsnumero+1
if bonsnumero==0:
print " Désolé mais tous vos numéros son mauvais, à la prochaine..."
else:
print " Vous avez",bonsnumero ,"bon(s) numéro(s)"
if bonsnumero==6:
print "Vous êtes l'un des grands gagnants"
print " Vous avez gagné 13 000 000 €"
QUESTIONS:
1. Que signifie Francaisedesjeux=[] ?
REPONSE:
Francaisedesjeux est la liste vide.
2. Qu'est-ce que m?
REPONSE:
C'est la longueur de la liste Francaisedesjeux
3. Quand on écrit : for i in range(6):
Quelles sont les valeurs prise par i
REPONSE:
i prend successivement les valeurs : 0 , 1 , 2 , 3 , 4 ,5
4. Que signifie cochage[i] ?
REPONSE:
C'est le terme d'indice i de la liste cochage.
5. Quand on écrit L=[i for i in range(1,50)]
qu'est-ce que L ?
REPONSE:
C'est la liste des entiers de 1 à 49
6. Quand on écrit a=choice(L)
que peut être a ?
REPONSE:
a est un entier quelconque de la liste L
7. Pourquoi a-t-on mis L.remove(a) ?
REPONSE :
C'est pour qu'une fois l'entier a choisi dans la liste L au hasard par l'ordinateur
il ne puisse pas le rechoisir au hasard de nouveau.
8. Que signifie if cochage[i] in Francaisedesjeux:
REPONSE:
Cela singifie:
Si le terme d'indice i de la liste cochage est dans la liste francaisedesjeux
9. Comment écrir la première ligne du programme pour que la liste cochage soit
soit demandée par le script ?
REPONSE: On peut proposer
cochage=input("Entrer une liste de 6 entiers distincts entre 1 et 49: ")
10. Comment se prémunir quand la list cochage est entrée d'un doublon ?
REPONSE:
On peut mettre après la ligne de def hasard():
cochage=input("Entrer une liste de 6 entiers distincts entre 1 et 49: ")
for i in range(6):
for j in range(i+1,6):
if cochage[i]==cochage[j]:
print " Les entiers doivent être distincts"
cochage=input("Entrer une liste de 6 entiers distincts entre 1 et 49: ")
LE SCRIPT DEVIENT :
from random import*
def hasard():
cochage=input("Entrer une liste de 6 entiers distincts entre 1 et 49: ")
for i in range(6):
for j in range(i+1,6):
if cochage[i]==cochage[j]:
print " Les entiers doivent être distincts"
cochage=input("Entrer une liste de 6 entiers distincts entre 1 et 49: ")
L=[i for i in range(1,50)]
Francaisedesjeux=[]
m=len(Francaisedesjeux)
for i in range(6):
a=choice(L)
Francaisedesjeux.append(a)
L.remove(a)
print " Le tirage de la française des jeu est :",Francaisedesjeux
print "Votre tirage est : ",cochage
bonsnumero=0
for i in range(6):
if cochage[i] in Francaisedesjeux:
print cochage[i]," est bon"
bonsnumero=bonsnumero+1
if bonsnumero==0:
print " Désolé mais tous vos numéros son mauvais, à la prochaine..."
else:
print " Vous avez",bonsnumero ,"bon(s) numéro(s)"
if bonsnumero==6:
print "Vous êtes l'un des grands gagnants"
print " Vous avez gagner 13 000 000 €"
On obtient par exemple:
>>> hasard()
Entrer une liste de 6 entiers distincts entre 1 et 49: [12,44,26,13,17,44]
Les entiers doivent être distincts
Entrer une liste de 6 entiers distincts entre 1 et 49: [1,2,3,4,5,6]
Le tirage de la française des jeu est : [32, 7, 34, 3, 28, 22]
Votre tirage est : [1, 2, 3, 4, 5, 6]
3 est bon
vous avez 1 bon(s) numéro(s)
>>
11. Qu'affiche le script quand on rentre la liste [12,13,32,17,41,48] ?
REPONSE:
Par exemple:
>>> hasard()
Entrer une liste de 6 entiers distincts entre 1 et 49: [12,13,32,17,41,48]
Le tirage de la française des jeu est : [23, 31, 2, 35, 15, 42]
Votre tirage est : [12, 13, 32, 17, 41, 48]
Désolé mais tous vos numéros son mauvais, à la prochaine...
>>>
Pour une autre liste par exemple
>>> hasard()
Entrer une liste de 6 entiers distincts entre 1 et 49: [43,35,27,13,12,8]
Le tirage de la française des jeu est : [28, 13, 12, 26, 41, 6]
Votre tirage est : [43, 35, 27, 13, 12, 8]
13 est bon
12 est bon
Vous avez 2 bon(s) numéro(s)
>>>
Par exemple pour une autre liste:
>>> hasard()
Entrer une liste de 6 entiers distincts entre 1 et 49: [12,45,25,27,13,1]
Le tirage de la française des jeu est : [34, 7, 17, 24, 9, 27]
Votre tirage est : [12, 45, 25, 27, 13, 1]
27 est bon
vous avez 1 bon(s) numéro(s)
>>>
----------------------------------------------------------------------------------
PARTIE B
Modifier le programme précédent pour que l'ordinateur se batte contre lui-même
c-à-d de façon que l'ordinateur génère aussi au hasard la liste cochage.
---------------------------------------------------------------------------------------
REPONSE:
On peut considérer:
from random import*
def hasard():
L=[i for i in range(1,50)]
cochage=[choice(L) for i in range(6)]
for i in range(6):
for j in range(i+1,6):
if cochage[i]==cochage[j]:
cochage=[choice(L) for i in range(6)]
Francaisedesjeux=[]
m=len(Francaisedesjeux)
for i in range(6):
a=choice(L)
Francaisedesjeux.append(a)
L.remove(a)
print " Le tirage de la française des jeu est :",Francaisedesjeux
print "Votre tirage est : ",cochage
bonsnumero=0
for i in range(6):
if cochage[i] in Francaisedesjeux:
print cochage[i]," est bon"
bonsnumero=bonsnumero+1
if bonsnumero==0:
print " Désolé,mais tous vos numéros son mauvais, à la prochaine..."
else:
print " vous avez",bonsnumero ,"bon(s) numéro(s)"
if bonsnumero==6:
print "Vous êtes l'un des grands gagnants"
print " Vous avez gagné 3 000 000 €"
Par exemple :
>>> hasard()
Le tirage de la française des jeu est : [9, 6, 36, 25, 24, 26]
Votre tirage est : [19, 8, 21, 32, 45, 9]
9 est bon
vous avez 1 bon(s) numéro(s)
>>>