Objectifs
Le principal objectif de cet articles est de :
- Savoir utiliser les boucles for (imbriquées) et la technique du « drapeau » sous Python
Les boucles for (imbriquées) et la technique du drapeau
Exercice 1 : Répéter l’affichage du contenu d’une liste
Soit une liste L d’entiers (entre 0 et 9, pour des raisons d’esthétique de l’affichage). On demande d’afficher n fois cette liste où n > 0 est un entier donné.
Deux cases successives seront séparées d’un espace.
L = [4, 8, 0, 9, 6, 3, 2, 8] lg = len(L) n = 6 for i in range (0, n) : for j in range (lg) : print (L[j], end= " ") print ()
Exercice 2 : Damier de nombre
On dit que deux entiers et ont même parité si et sont tous les deux pairs ou bien si et sont tous les deux impairs.
Écrire un code qui à partir de deux entiers et calcule la valeur d’une variable memeParite qui vaut True si les deux entiers ont même parité, et False sinon.
a = 15 b = 89 #methode 1 memeParite = (a % 2 == b % 2) print (memeParite) #methode 2 memeParite = (a + b) % 2 print (memeParite)
Réaliser un programme qui affiche un damier de forme carrée, de côté, de longueur n > 0 et rempli alternativement du nombre 4 et du nombre 2. La case en haut à gauche sera toujours 4.
n = 7 #i : indexe chaque ligne for i in range (n) : #j : indexe chaque colonne de la ligne indexée par i for j in range (n) : #indices de ligne et de colonne de même parité if i % 2 == j % 2 : print (4, end = " ") #indices de ligne et de colonne de parités distinctes else : print (2, end = " ") print ()
Exercice 3 : Alternance de parité
On donne une liste L d’entiers et on demande de créer un booléen alterneParite valant True si les éléments de L se suivent en alternant de parité et False sinon.
L = [81, 32, 9, 12]
lg = len(L)
alterneParite = True
for i in range (0, lg-1) :
if L[i] % 2 == L[i+1] % 2 :
alterneParite = False
print (alterneParite)
Exercice 4 : Suite croissante d’entiers consécutifs
Ecrire un code qui, à partir d’une liste L d’entiers définit une variable booléenne nommée consecutifs qui vaut True si la liste est constituée d’entiers consécutifs croissants et False sinon.
L = [81, 32, 9, 12] lg = len(L) print (L) consecutifs = True #methode 1 for i in range (1, lg) : if L[i] != L[0] + i consecutifs = False print (consecutifs) print () #Alternative (drapeau et comparer un terme et le suivant) for i in range (lg - 1) : if L[i] + 1 != L[i+1] : consecutifs = False print (consecutifs)
Exercice 5 : Listes « opposées »
Écrire un code qui partant de deux listes d’entiers L et M crée un booléen sontOpposees valant True si les deux listes sont « opposées » et False sinon. Deux listes sont considérées comme « opposées » si elles ont le même nombre d’éléments et si, à des indices identiques, elles possèdent des éléments opposés (comme -81 et 81).
L = [81, -12, 0, -81, -31] M = [-81, 12, 0, 81, 31] n = len(L) m = len(M) print (L) print (M) sontOpposees = True if n != m : sontOpposees = False else : for i in range (0, n) : if L[i] != -M[i] : sontOpposees = False print (sontOpposees)
0 commentaires