0% ont trouvé ce document utile (0 vote)
729 vues6 pages

Corection Pyton

Le document décrit les listes en Python, y compris l'accès aux éléments, la concaténation et les opérations sur les listes. Il présente également les boucles for et while, ainsi que des exercices sur les listes et les boucles.

Transféré par

MANAL BENNOUF
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
729 vues6 pages

Corection Pyton

Le document décrit les listes en Python, y compris l'accès aux éléments, la concaténation et les opérations sur les listes. Il présente également les boucles for et while, ainsi que des exercices sur les listes et les boucles.

Transféré par

MANAL BENNOUF
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Notebook séance 2

Les listes
[Link]
l = [1,2,3]
len(l)
3
l[0]
1
l[2]
3
Accès aux éléments par la gauche de la liste, avec des indices négatifs
l[-1]
3
l[-2]
2
Accès à des intervalles de la liste.
l[0:0]
[]
l[0:2]
[1, 2]
l[0:4]
[1, 2, 3]
l[0:6]
[1, 2, 3]
l[1:]
[2, 3]
l[:2]
[1, 2]
l[:-1]
[1, 2]

1
l[:]
[1, 2, 3]
On ne peut pas accèder à un élément qui n’existe pas.
l[7] = 4
---------------------------------------------------------------------------

IndexError Traceback (most recent call last)

<ipython-input-15-aac57e5864e7> in <module>
----> 1 l[7] = 4

IndexError: list assignment index out of range


l1 = [1,2,3]
l2 = [4,5,6]
On peut concaténer des listes.
l1 + l2
[1, 2, 3, 4, 5, 6]
[Link](l2)
l1
[1, 2, 3, [4, 5, 6]]

Exercices sur les listes


Tous les exercices qui se trouvent dans le poly sont bons à faire. Voici ceux que
j’avais prévu de corriger avec vous et que je vous demande de traiter en premier.

4.9.1 Jours de la semaine


Constituez une liste semaine contenant les 7 jours de la semaine.
• À partir de cette liste, comment récupérez-vous seulement les 5 premiers
jours de la semaine d’une part, et ceux du week-end d’autre part ? Utilisez
pour cela l’indiçage.
• Cherchez un autre moyen pour arriver au même résultat (en utilisant un
autre indiçage).
• Trouvez deux manières pour accéder au dernier jour de la semaine.
• Inversez les jours de la semaine en une commande.

2
4.9.2 Saisons
Créez 4 listes hiver, printemps, ete et automne contenant les mois correspondants
à ces saisons. Créez ensuite une liste saisons contenant les listes hiver, printemps,
ete et automne. Prévoyez ce que renvoient les instructions suivantes, puis
vérifiez-le dans l’interpréteur :
• saisons[2]
• saisons[1][0]
• saisons[1:2]
• saisons[:][1]. Comment expliquez-vous ce dernier résultat ?
hiver = [ 'décembre', 'janvier', 'février' ]
printemps = [ 'mars', 'avril' , 'mai' ]
ete = [ 'juin', 'juillet', 'aout' ]
automne = [ 'septembre', 'octobre', 'novembre' ]
saisons = [ hiver, printemps, ete, automne ]
saisons[2]
['juin', 'juillet', 'aout']
saisons[1][0]
'mars'
saisons[1:2]
[['mars', 'avril', 'mai']]
saisons[:][1]
['mars', 'avril', 'mai']

4.9.3 Table de multiplication par 9


Affichez la table de multiplication par 9 en une seule commande avec les instruc-
tions range() et list().
list(range(9,90+1,9))
[9, 18, 27, 36, 45, 54, 63, 72, 81, 90]

4.9.4 Nombres pairs


Répondez à la question suivante en une seule commande. Combien y a-t-il de
nombres pairs dans l’intervalle [2, 10000] inclus ?
len(list(range(2,10000+1,2)))
5000

3
Les boucles
[Link]
Elements de syntaxe : - les : qui marquent l’ouverture d’un bloc de code -
l’indentation qui permet de signifier quelles instructions sont dans le même bloc
de code
for element in saisons:
print(element)
['décembre', 'janvier', 'février']
['mars', 'avril', 'mai']
['juin', 'juillet', 'aout']
['septembre', 'octobre', 'novembre']
De l’importance de l’indentation, seules les instructions indentées sous le pour
appartiennent au même bloc et sont exécutées à chaque tour de boucle.
for element in saisons:
print(element)
print(element)
['décembre', 'janvier', 'février']
['mars', 'avril', 'mai']
['juin', 'juillet', 'aout']
['septembre', 'octobre', 'novembre']
['septembre', 'octobre', 'novembre']
Python demande à ce que les indentations soient toutes les mêmes. Ici cela crée
une erreur.
for element in saisons:
print(element)
print(element)
File "<tokenize>", line 3
print(element)
^
IndentationError: unindent does not match any outer indentation level
for i in range(len(saisons)):
print(saisons[i])
['décembre', 'janvier', 'février']
['mars', 'avril', 'mai']
['juin', 'juillet', 'aout']
['septembre', 'octobre', 'novembre']
La boucle tant que permet d’itérer et de s’arrêter sur une condition et non de
parcourir toutes les valeurs d’un ensemble.

4
i = 0
while i < len(saisons):
print(saisons[i])
i += 1
['décembre', 'janvier', 'février']
['mars', 'avril', 'mai']
['juin', 'juillet', 'aout']
['septembre', 'octobre', 'novembre']
Si on sait à l’avance le nombre de tours de boucles, on utilise la boucle pour.
Si la condition d’arrêt de la boucle évolue au fur et à mesure du déroulement de
celle-ci, on utilise la boucle tant que.
import random
l = [Link](range(1,100), 50)
print(l)
# recherche de la suite des nombres croissants en début de liste
i = 0
while i < len(l)-1 and l[i] < l[i+1]:
print(l[i])
i +=1
[5, 84, 45, 14, 49, 69, 41, 28, 17, 15, 48, 68, 34, 67, 33, 74, 99, 16, 25, 78, 53, 59, 43,
5

Exercices sur les boucles


5.4.4 Nombres pairs et impairs
Soit impairs la liste de nombres [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21].
Écrivez un programme qui, à partir de la liste impairs, construit une liste pairs
dans laquelle tous les éléments de impairs sont incrémentés de 1.
l = []
for nombre_impair in [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21]:
[Link](nombre_impair + 1)
l
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22]

5.4.6 Produit de nombres consécutifs


Avez les fonctions list() et range(), créez la liste entiers contenant les nombres
entiers pairs de 2 à 20 inclus.
Calculez ensuite le produit des nombres consécutifs deux à deux de entiers en
utilisant une boucle. Exemple pour les premières itérations :

5
produit de 2 et 4 : 8 produit de 4 et 6 : 24 produit de 6 et 8 :
48 [...]
pairs = list(range(2,20+1,2))
for i in range(len(pairs)-1):
print("produit de {} et {} : {}".format(pairs[i],pairs[i+1],pairs[i]*pairs[i+1]))
produit de 2 et 4 : 8
produit de 4 et 6 : 24
produit de 6 et 8 : 48
produit de 8 et 10 : 80
produit de 10 et 12 : 120
produit de 12 et 14 : 168
produit de 14 et 16 : 224
produit de 16 et 18 : 288
produit de 18 et 20 : 360

5.4.13 Sauts de puce


On imagine une puce qui se déplace aléatoirement sur une ligne, en avant ou en
arrière, par pas de 1 ou -1. Par exemple, si elle est à l’emplacement 0, elle peut
sauter à l’emplacement 1 ou -1; si elle est à l’emplacement 2, elle peut sauter à
l’emplacement 3 ou 1, etc.
Avec une boucle while, simuler le mouvement de cette puce de l’emplacement
initial 0 à l’emplacement final 5 (voir le schéma de la figure 3). Combien de sauts
sont nécessaires pour réaliser ce parcours ? Relancez plusieurs fois le programme.
Trouvez-vous le même nombre de sauts à chaque exécution ?
Conseil : vous utiliserez l’instruction [Link]([-1,1]) qui renvoie au hasard
les valeurs -1 ou 1 avec la même probabilité. Avant d’utiliser cette instruction
vous mettrez la ligne import random dans un cellule.
import random
[Link]([-1,1])
1
position = 0
nb_sauts = 0
while position != 5:
position += [Link]([-1,1])
nb_sauts += 1
print("la puce a réalisé {} sauts".format(nb_sauts))
la puce a réalisé 147727 sauts

Vous aimerez peut-être aussi