FEUILLE D'EXERCICES BTS1 n° 19 BTS1
Thème:
• Test pour savoir si l'on a un terme d'une liste A.
if .... in A:
print "OUI"
else:
print "NON"
• Création d'une matrice aléatoire d'entiers naturels entre 1 et 10.
randint(1,10) pour la création d'un entier entre 1 et 10
• Utilisation de + pour ajouter un terme à la fin d'une liste.
• Utilisation de .append( ) pour ajouter un terme à la fin d'une liste.
• Utilisation pour obtenir l'affichage verticalement des lignes d'une matrice A de:
for line in A:
print line
----------------------------------------------------------------------------------------------------------------------
EXERCICE 1
Donner un script qui connaissant une liste A demande la saisie d'un entier n
puis indique par OUI ou par NON si cet entier est un terme de A.
------------------------------------------------------------------------------------------------------------------------------
REPONSE :
On peut proposer:
def essai():
A=[1,2,3,4,5,6]
n=int(input("Quel entier proposez-vous ? "))
if n in A:
print "OUI"
else:
print "NON"
On obtient par exemple:
>>> essai()
Quel entier proposez-vous ? 3
OUI
>>>
------------------------------------------------------------------------------------
EXERCICE 2
Ecrire un script qui demande de deviner l’un des termes
d’une matrice fixée A de type ( 2 ;2 ) d’entiers compris entre 1 et 10
et qui dit si c’est bon ou non en affichant finalement A.
----------------------------------------------------------------------------------------------------------
REPONSE :
On peut considérer :
from random import*
def jeu():
print "A est une matrice de type (2 ; 2 ) d'entiers entre 1 et 10"
A=[[1,5],[3,6]]
n=input("Quel entier est dans A? : n = ")
if n in A[0] or n in A[1]:
print "OUI. Bravo"
else:
print "NON. Pas de chance!"
print " La matrice A est: "
for line in A:
print line
On obtient par exemple:
>>> jeu()
A est une matrice de type (2 ; 2 ) d'entiers entre 1 et 10
Quel entier est dans A? : n = 6
OUI. Bravo
La matrice A est:
[1, 5]
[3, 6]
>>>
-------------------------------------------------------------------------------
EXERCICE 3
Donner un script qui crée de façon aléatoire une matrice A
de type ( 2 ; 3) d’entiers naturels compris entre 1 et 10 .
-----------------------------------------------------------------------------
REPONSE :
On peut considérer:
from random import*
def devin():
L=[]
M=[]
for i in range(3):
a=randint(1,10)
L.append(a)
for j in range(3):
b=randint(1,10)
M.append(b)
A=[L,M]
print A
On obtient par exemple :
>>> devin()
[[3, 2, 1], [6, 10, 4]]
>>>
On peut vouloir avoir les lignes de A disposées verticalement.
Pour cela on met:
from random import*
def devin():
L=[]
M=[]
for i in range(3):
a=randint(1,10)
L.append(a)
for j in range(3):
b=randint(1,10)
M.append(b)
A=[L,M]
for line in A:
print line
On obtient par exemple la matrice aléatoire d’entiers
verticalement
>>> devin()
[5, 10, 9]
[8, 3, 7]
>>>
-----------------------------------------------------
EXERCICE 4
Donner un script qui crée de façon aléatoire une matrice A
de type ( 2 ; 3) d’entiers naturels compris entre 1 et 10 puis
propose de faire deviner l’un de ses termes en disant si c’est bon ou non et
donne finalement la matrice A.
-----------------------------------------------------------------------
REPONSE :
On peut considérer:
from random import*
def devin():
L=[]
M=[]
for i in range(3):
a=randint(1,10)
L.append(a)
for j in range(3):
b=randint(1,10)
M.append(b)
A=[L,M]
print " A est une matrice de type (2;3) d’entiers compris entre 1 et 10 "
n = input("Quel entier est dans A ? n = " )
if n in A[0] or n in A[1] :
print "OUI. Bravo. "
else:
print "NON. Pas de chance."
print " La matrice A est: "
for line in A:
print line
On obtient par exemple :
>>> devin()
A est une matrice de type (2;3) d’entiers compris entre 1 et 10
Quel entier est dans A ? n= 6
OUI. Bravo.
La matrice A est :
[5, 2, 6]
[9, 10, 8]
>>>
Par exemple également
>>> devin()
A est une matrice de type (2;3) d’entiers compris entre 1 et 10
Quel entier est dans A ? n= 0
NON. Pas de chance.
La matrice A est :
[5, 2, 6]
[9, 10, 8]
>>>
--------------------------------------------------------------------------
EXERCICE 5
Créer une liste contenant tous les entiers de 1 à 20.
Elle représentera un paquet de 20 cartes numérotées de 1 à 20.
~~~~~~~~~~~~~~~~~~~~~
REPONSE :
On peut considerer le script suivant:
from random import* <---- ce module est nécessaire à cause du range
def creation():
ens=[] <---- ens est d’abord une liste vide
for i in range(1,21): <------ l’entier i varie de 1 à 21-1
ens=ens+[i] <----- + ajoute i comme terme à la fin de la liste ens
print ens
Cela donne :
>>> creation()
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
>>>
On peut donc utiliser + pour ajouter un terme à une liste
On peut imaginer que l’on a créé un paquet de 20 cartes numérotées de 1 à 20
En déplaçant le p de print à la verticale du e de ens=ens+[i]
On voit la construction se faire progressivement.
from random import*
def creation():
ens=[]
for i in range(1,21):
ens=ens+[i]
print ens
Cela donne :
>>> creation()
[1]
[1, 2]
[1, 2, 3]
[1, 2, 3, 4]
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6, 7]
[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
>>>
------------------------------------------------------------------------------------------------
EXERCICE 6
Même question en utilisant .append( )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
REPONSE :
On peut considérer:
from random import*
def creation():
ens=[]
for i in range(1,21):
ens.append(i)
print ens
On obtient exactement la même chose :
>>> creation()
[1]
[1, 2]
[1, 2, 3]
[1, 2, 3, 4]
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6, 7]
[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
>>>
Pour n'avoir que la dernière ligne délacer le print à la verticale de for .
------------------------------------------------------------------------------------
EXERCICE 7
Ecrire un script qui d'abord affîche la liste des entiers de 1 à 20
puis qui mélange 30 fois les cartes par 2 de façon aléatoire.
Cela revient à avoir un paquet de 20 cartes numérotéesde 1 à 20 et de battre le jeu
en échangeant 30 fois le carte par deux.
---------------------------------------------------------------------------------------------------------------------
REPONSE:
On peut considérer:
from random import*
def melange():
jeu=[] <--- création d'une liste vide
for i in range(1,21): < -- l'entier i varie de 1 à 21
jeu=jeu+[i]
print jeu <----- la liste jeu contient les entiers ordonnés de 1 à 21
for k in range( 30): les indices des termes de la liste jeu varient de 0 à 19
i= randint(0,19) <------ fournit un indice quelconque
j=randint(0,19) <------ fournit un indice quelconque
m=jeu[i] <--- sauvegarde temporaire du terme d'indice i
jeu[i]=jeu[j]
jeu[j]=m On a permuté les termes d'indices i et j
print jeu
On obtient par exemple:
>>> melange()
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
[7, 18, 13, 6, 5, 15, 10, 19, 9, 17, 16, 2, 14, 11, 1, 4, 3, 20, 8, 12]
>>>
-----------------------------------------------------------
: