Ecrire un programme qui détermine le plus grand nombre contenu dans une liste d'entiers.
Ainsi par exemple, si le programme commence par liste = [21, 47, -12, 74, 5, 28, 33], il devra afficher au final :
Le plus grand élément est : 74
Indication :
on pourra créer une variable "max", qui prendra au départ la valeur du premier élément de la liste.
Puis on peut parcourrir la liste, et modifier max si besoin.
Exercice 5 : création de listes.
a. Ecrire un programme pour créer la liste des nombres impairs de 1 à 101.
b. Ecrire un programme pour créer la liste des nombres [7, 57, 107, 157, ... , 657].
c. Ecrire un programme pour créer la liste des 20 premiers termes d'une suite géométrique, de raison 3, et de premier terme 5.
Exercice 6 : le tirage du loto.
Ecrire un programme pour réaliser un tirage au sort virtuel du loto :
votre programme devra renvoyer une liste de 6 numéros :
les 5 premiers étant tirés au sort entre 1 et 49,
le dernier (numéro chance) étant tiré au sort entre 1 et 10.
Rappel :
from random import randint
...
nombre_au_hasard = randint(... , ...)
Exercice 7 : le redoutable !
a. Rappel sur les chaînes de caractères :
On accède aux caractères d'une chaîne de caractères avec la même notation que pour les éléments d'une liste :
>>> mot = "Bonjour"
>>> print(mot[0])
B
>>> print(mot[2])
n
b. Ecrire un programme qui :
commencera par l'affectation (faire un copier-coller) :
Comme annoncé dans le titre, cet exercice est redoutable ... mais salvateur !
En effet, il va nous permettre d'identifier un piège infernal, qui nous attend, caché dans les projets :
le piège de la suppression d'éléments dans une liste sur laquelle nous bouclons !
Arrivé au mois de Juin ci-dessus, notre compteur vaut 5. Juin commence par 'J' donc il est supprimé de la liste et le compteur passe à 6.
Mais Juin ayant été supprimé de la liste, Juillet est passé dans la liste à l'indice 5, alors que notre compteur est maintenant à 6.
Juillet ne pourra donc pas être éliminé de la liste !
De même, puisque la taille de notre liste diminue au fur et à mesure que des mois sont supprimés, elle n'est plus que de taille 11, 10, 9 ...
alors que notre compteur va galoper jusqu'à 11 ! Si bien que lorsque le programme appelera mois[11] : nous aurons le message d'erreur :
IndexError: list index out of range.
d. Mais alors, comment faire ?
Une boucle for est donc exclue lorsque allons supprimer des éléments dans la liste sur laquelle nous bouclons.
Il faut avoir recours à une boucle while, munie d'un compteur créé et géré par nos soins :
Mais attention, même comme cela, le redoutable reste redoutable :
la taille de la liste va changer au cours de la boucle :
while compteur < 12 est donc exclu,
il faudra donc chercher du côté de : while compteur < len(mois) + ou - ... ?
le "compteur = compteur + 1" en fin de boucle ne devra être réalisé que si ... ?
Exercice 8 : déplacements aléatoires de plusieurs balles.
Objectif :
1. Créer une fenêtre tKinter, munie d'un canevas 700x500.
2. Créer 3 listes vides : "posx", "posy" et "liste" : elles stockeront respectivement les abscisses des balles, les ordonnées des balles et les items oval.
3. Remplir ces trois listes à l'aide d'une boucle : afin d'obtenir nos 14 balles de diamètres 50, dans la position initiale que nous observons dans la vidéo.
4. Créer une fonction d'animation anim qui :
pour chaque balle :
tire au sort un déplacement vertical à réaliser (compris entre 0 et 4 pixels),
si la balle sort de l'écran, remet sa position verticale à 0,
sinon, augmente la position verticale du nombre tiré au sort,
déplace la balle correspondante vers sa nouvelle position.
se ré-appelle 20 ms plus tard, pour poursuivre l'animation.
5. La touche finale : créer un bouton "Go !" afin de pouvoir lancer l'animation au moment de notre choix.