Utilisation des conditions et
boucles
Exemple 1
• Quelle est la sortie du code suivant ?
Deco = {'foo': 1, 'bar': 2, 'baz': 3}
if 'bar' in deco :
print(1)
print(2)
if 'a' in 'qux':
print(3)
print(4)
Sortie 1 2 4
Exemple 2
d = {'a': 0, 'b': 1, 'c': 0}
if d['a'] > 0:
print('yeah !')
elif d['b'] > 0:
print('yeah !')
elif d['c'] > 0:
print('ok')
elif d['d'] > 0:
print('ok')
else:
print('not ok')
Les conditions
• Python nous fournit les structures conditionnelles suivantes :
• La condition if (“si”) ;
• La condition if…else (“si…sinon”) ;
• La condition if…elif…else (“si…sinon si… sinon”) .
IF
• Exercice 1 : Écrivez un programme qui demande à l'utilisateur
de saisir un nombre et affiche "Positif" si le nombre est
supérieur à zéro, "Nul" s'il est égal à zéro, et "Négatif" s'il est
inférieur à zéro.
• Exercice 2 : Écrivez un programme qui demande à l'utilisateur
de saisir trois nombres et affiche le plus grand des trois.
• Exercice 3 : Écrivez un programme qui demande à l'utilisateur
de saisir une année et vérifie si elle est bissextile. Une année
est bissextile si elle est divisible par 4, sauf si elle est divisible
par 100. Toutefois, les années divisibles par 400 sont
bissextiles. Affichez "Bissextile" ou "Non bissextile" en
conséquence.
nombre = input("Saisissez un nombre : ")
if nombre > 0:
print("Positif")
elif nombre == 0:
print("Nul")
else:
print("Négatif")
nombre1 = float(input("Saisissez le premier nombre : "))
nombre2 = float(input("Saisissez le deuxième nombre : "))
nombre3 = float(input("Saisissez le troisième nombre : "))
plus_grand = nombre1
if nombre2 > plus_grand:
plus_grand = nombre2
if nombre3 > plus_grand:
plus_grand = nombre3
print("Le plus grand nombre est :", plus_grand)
Reste de la division
A=5
B=2
C=A/B
A=int (input(‘’Donner un nombre’’) 8
B=int (input(‘’Donner un nombre’’) 3
C=A/B
C=2
D=A%B =2
annee = int(input("Saisissez une année : "))
if annee % 400 == 0:
print("Bissextile")
elif annee % 100 == 0:
print("Non bissextile")
elif annee % 4 == 0:
print("Bissextile")
else:
print("Non bissextile")
Nb=int(input(‘’donner le nombre de valeur’’))
j=0
i=0
While j<Nb:
a[j]= int(input(‘’donner le nombre nombe’’))
j=j+1
While i<Nb:
print(a[i])
i=i+1
Execution
Nb=4 , j=3
a 9 1 3 5
Exercice
• Maximum d’un tableau
Choisissez la boucle
adéquate
• Les boucles for vont être utilisées lorsque l’on sait par avance
le nombre de fois où une action va être répétée.
a = ['foo', 'bar', 'baz', 'qux', 'corge’]
while a:
if len(a) < 3:
break
print(a.pop())
print('Done.’)
Pop –> retirer un element
Exemple 1
La logique de for
La boucle for via une valeur itérative entière
• Si l’on veut vraiment boucler via une valeur itérative entière en Python pour revenir à
une boucle for plus classique en termes de programmation, on va en réalité devoir
contourner le problème. Vous allez itérer au travers d’une liste qui contiendra les
différentes valeurs de votre entier itératif. Pour cela, vous utiliserez la fonction
range(début, fin, pas), qui va générer une liste de nombres selon trois paramètres :
• début : le premier nombre de la séquence;
• fin : correspond au dernier nombre de la séquence non inclus. La fonction va générer
des nombres de début à fin- 1;
• pas : le pas entre chaque nombre généré.
• Range ()
for i in range(0, 5, 1):
print(i) # -> affiche de 0 à 4 par pas de 1 (fin - 1)
for i in range(0, 5):
print(i) # -> affiche de 0 à 4 également (le pas par défaut est 1)
for i in range(5):
print(i) # -> affiche de 0 à 4 également (le début par défaut est 0)
for i in range(0, 5, 2):
print(i) # -> affiche 0, 2 puis 4
La boucle conditionnelle est la
boucle while en Python.
• "While" en anglais signifie "tant que", et comme vous pouvez le
deviner par le nom, la boucle va tourner tant qu’une condition
est réalisée. C’est une sorte de combinaison entre une boucle
for et une structure if. Le nombre de répétitions n’est pas
défini à l’avance, mais via une condition à réaliser, comme avec
un if. On appelle cela une boucle conditionnelle.
• Passez certaines instructions au sein de votre boucle :
continue
• Vous pouvez aussi décider d’interrompre la boucle, lorsque par
exemple on cherche un élément particulier dans une liste. Pour cela,
vous utiliserez le mot clé break
La clause else dans une boucle
• La clause else dans un boucle permet de définir un bloc d’instructions qui
sera exécuté à la fin seulement si la boucle s’est déroulée complétement
sans être interrompue par un break.
for n in range(2, 8):
for x in range(2, n):
if n % x == 0:
print(n, "egale", x, "*", n/x)
break
else:
print(n, "est un nombre premier")
Boucle while
• Écrivez un programme qui génère les n premiers nombres
premiers, où n est saisi par l'utilisateur.
• Écrivez un programme qui génère les termes de la suite de Collatz
pour un nombre donné. La suite de Collatz est définie comme suit :
pour un nombre n, si n est pair, divisez-le par 2 ; sinon, multipliez-le
par 3 et ajoutez 1. Le programme doit afficher la suite jusqu'à ce que
le nombre atteigne 1
n = int(input("Saisissez la valeur de n : "))
nombres_premiers = []
nombre = 2
while len(nombres_premiers) < n:
est_premier = True
for i in range(2, int(nombre**0.5) + 1):
if nombre % i == 0:
est_premier = False
break
if est_premier:
nombres_premiers.append(nombre)
nombre += 1
print("Les", n, "premiers nombres premiers sont :", nombres_premiers)
nombre = int(input("Saisissez un nombre : "))
while nombre != 1:
print(nombre, end=" ")
if nombre % 2 == 0:
nombre = nombre // 2 # Division entière par 2 (nombre pair)
else:
nombre = nombre * 3 + 1 # Multiplication par 3 et ajout de 1 (nombre
impair)
print(nombre) # Affiche le dernier terme de la suite (1)
Exemple de boucle sur dictionnaire
etudiants = {
'Alice': 18,
'Bob': 20,
'Charlie': 16,
'Dave': 19,
'Eve': 17
}
# Parcourir le dictionnaire et afficher chaque clé et valeur
for nom, age in etudiants.items():
print(nom, "a", age, "ans")
• Exercice : Calcul de la moyenne des valeurs d'un dictionnaire
le dictionnaire (clé:valeur) : 1:15, 2:25, 3:40, 4:45, 5:60
dictionnaire = input("Saisissez le dictionnaire (clé:valeur) : ")
# Conversion de la chaîne de caractères en dictionnaire
dictionnaire = dict(item.split(":") for item in dictionnaire.split(", "))
# Calcul de la moyenne des valeurs du dictionnaire
somme = 0
nombre_valeurs = len(dictionnaire)
for valeur in dictionnaire.values():
somme += int(valeur)
moyenne = somme / nombre_valeurs
print("La moyenne des valeurs est :", moyenne)
QCM
• Comment pouvez-vous modifier la variable num suivante ?
• modification
num[2] = 'two'
num[1] = 'two'
num['two'] = 2
num['two'] = '2'
• Quelle affirmation parmi les 4 suivantes est vraie, vis-à-vis des
listes en Python ?
-Tous les éléments d'une liste doivent être du même type.
-Une liste peut contenir tous types d'objets à l'exception d'une autre liste.
-Ces deux listes sont équivalentes : ['a', 'b', 'c'] et ['c', 'a', 'b'].
-Une liste n'a pas de limite conceptuelle !
• Quelle affirmation parmi les suivantes est fausse
concernant les collections ?
• Un tuple est un objet ordonné.
• Une liste peut être modifiée.
• Un dictionnaire n'est pas mutable.
• Un tuple est défini avec des parenthèses.
Comment peut-on interrompre une boucle prématurément ?
-Via le mot clé continue
-Via l'opérateur :
-Via le mot clé stop
-Via le mot clé break
• Les codes suivants concernent différentes actions possibles
avec des listes. Sélectionnez les blocs contenant des actions
correctes parmi ceux ci-dessous :
• Colors.insert(2,’RED’);
Rappel
• une liste est un tableau ordonné, modifiable, où chaque
élément est associé à un indice ;
• un dictionnaire est un tableau non ordonné, modifiable, où
chaque élément est associé à une clé ;
• un tuple est un tableau ordonné, non mutable, où chaque
élément est associé à un indice ;
• Un dictionnaire est donc bel et bien modifiable : il est donc
mutable.

condition et boucle (2).pptx

  • 1.
  • 2.
    Exemple 1 • Quelleest la sortie du code suivant ? Deco = {'foo': 1, 'bar': 2, 'baz': 3} if 'bar' in deco : print(1) print(2) if 'a' in 'qux': print(3) print(4) Sortie 1 2 4
  • 3.
    Exemple 2 d ={'a': 0, 'b': 1, 'c': 0} if d['a'] > 0: print('yeah !') elif d['b'] > 0: print('yeah !') elif d['c'] > 0: print('ok') elif d['d'] > 0: print('ok') else: print('not ok')
  • 4.
    Les conditions • Pythonnous fournit les structures conditionnelles suivantes : • La condition if (“si”) ; • La condition if…else (“si…sinon”) ; • La condition if…elif…else (“si…sinon si… sinon”) .
  • 5.
    IF • Exercice 1: Écrivez un programme qui demande à l'utilisateur de saisir un nombre et affiche "Positif" si le nombre est supérieur à zéro, "Nul" s'il est égal à zéro, et "Négatif" s'il est inférieur à zéro. • Exercice 2 : Écrivez un programme qui demande à l'utilisateur de saisir trois nombres et affiche le plus grand des trois. • Exercice 3 : Écrivez un programme qui demande à l'utilisateur de saisir une année et vérifie si elle est bissextile. Une année est bissextile si elle est divisible par 4, sauf si elle est divisible par 100. Toutefois, les années divisibles par 400 sont bissextiles. Affichez "Bissextile" ou "Non bissextile" en conséquence.
  • 6.
    nombre = input("Saisissezun nombre : ") if nombre > 0: print("Positif") elif nombre == 0: print("Nul") else: print("Négatif")
  • 7.
    nombre1 = float(input("Saisissezle premier nombre : ")) nombre2 = float(input("Saisissez le deuxième nombre : ")) nombre3 = float(input("Saisissez le troisième nombre : ")) plus_grand = nombre1 if nombre2 > plus_grand: plus_grand = nombre2 if nombre3 > plus_grand: plus_grand = nombre3 print("Le plus grand nombre est :", plus_grand)
  • 8.
    Reste de ladivision A=5 B=2 C=A/B A=int (input(‘’Donner un nombre’’) 8 B=int (input(‘’Donner un nombre’’) 3 C=A/B C=2 D=A%B =2
  • 9.
    annee = int(input("Saisissezune année : ")) if annee % 400 == 0: print("Bissextile") elif annee % 100 == 0: print("Non bissextile") elif annee % 4 == 0: print("Bissextile") else: print("Non bissextile")
  • 10.
    Nb=int(input(‘’donner le nombrede valeur’’)) j=0 i=0 While j<Nb: a[j]= int(input(‘’donner le nombre nombe’’)) j=j+1 While i<Nb: print(a[i]) i=i+1 Execution Nb=4 , j=3 a 9 1 3 5
  • 11.
  • 12.
  • 13.
    • Les bouclesfor vont être utilisées lorsque l’on sait par avance le nombre de fois où une action va être répétée.
  • 14.
    a = ['foo','bar', 'baz', 'qux', 'corge’] while a: if len(a) < 3: break print(a.pop()) print('Done.’) Pop –> retirer un element Exemple 1
  • 15.
  • 16.
    La boucle forvia une valeur itérative entière • Si l’on veut vraiment boucler via une valeur itérative entière en Python pour revenir à une boucle for plus classique en termes de programmation, on va en réalité devoir contourner le problème. Vous allez itérer au travers d’une liste qui contiendra les différentes valeurs de votre entier itératif. Pour cela, vous utiliserez la fonction range(début, fin, pas), qui va générer une liste de nombres selon trois paramètres : • début : le premier nombre de la séquence; • fin : correspond au dernier nombre de la séquence non inclus. La fonction va générer des nombres de début à fin- 1; • pas : le pas entre chaque nombre généré. • Range ()
  • 17.
    for i inrange(0, 5, 1): print(i) # -> affiche de 0 à 4 par pas de 1 (fin - 1) for i in range(0, 5): print(i) # -> affiche de 0 à 4 également (le pas par défaut est 1) for i in range(5): print(i) # -> affiche de 0 à 4 également (le début par défaut est 0) for i in range(0, 5, 2): print(i) # -> affiche 0, 2 puis 4
  • 18.
    La boucle conditionnelleest la boucle while en Python. • "While" en anglais signifie "tant que", et comme vous pouvez le deviner par le nom, la boucle va tourner tant qu’une condition est réalisée. C’est une sorte de combinaison entre une boucle for et une structure if. Le nombre de répétitions n’est pas défini à l’avance, mais via une condition à réaliser, comme avec un if. On appelle cela une boucle conditionnelle. • Passez certaines instructions au sein de votre boucle : continue • Vous pouvez aussi décider d’interrompre la boucle, lorsque par exemple on cherche un élément particulier dans une liste. Pour cela, vous utiliserez le mot clé break
  • 19.
    La clause elsedans une boucle • La clause else dans un boucle permet de définir un bloc d’instructions qui sera exécuté à la fin seulement si la boucle s’est déroulée complétement sans être interrompue par un break. for n in range(2, 8): for x in range(2, n): if n % x == 0: print(n, "egale", x, "*", n/x) break else: print(n, "est un nombre premier")
  • 20.
  • 21.
    • Écrivez unprogramme qui génère les n premiers nombres premiers, où n est saisi par l'utilisateur. • Écrivez un programme qui génère les termes de la suite de Collatz pour un nombre donné. La suite de Collatz est définie comme suit : pour un nombre n, si n est pair, divisez-le par 2 ; sinon, multipliez-le par 3 et ajoutez 1. Le programme doit afficher la suite jusqu'à ce que le nombre atteigne 1
  • 22.
    n = int(input("Saisissezla valeur de n : ")) nombres_premiers = [] nombre = 2 while len(nombres_premiers) < n: est_premier = True for i in range(2, int(nombre**0.5) + 1): if nombre % i == 0: est_premier = False break if est_premier: nombres_premiers.append(nombre) nombre += 1 print("Les", n, "premiers nombres premiers sont :", nombres_premiers)
  • 23.
    nombre = int(input("Saisissezun nombre : ")) while nombre != 1: print(nombre, end=" ") if nombre % 2 == 0: nombre = nombre // 2 # Division entière par 2 (nombre pair) else: nombre = nombre * 3 + 1 # Multiplication par 3 et ajout de 1 (nombre impair) print(nombre) # Affiche le dernier terme de la suite (1)
  • 24.
    Exemple de bouclesur dictionnaire etudiants = { 'Alice': 18, 'Bob': 20, 'Charlie': 16, 'Dave': 19, 'Eve': 17 } # Parcourir le dictionnaire et afficher chaque clé et valeur for nom, age in etudiants.items(): print(nom, "a", age, "ans")
  • 25.
    • Exercice :Calcul de la moyenne des valeurs d'un dictionnaire le dictionnaire (clé:valeur) : 1:15, 2:25, 3:40, 4:45, 5:60
  • 26.
    dictionnaire = input("Saisissezle dictionnaire (clé:valeur) : ") # Conversion de la chaîne de caractères en dictionnaire dictionnaire = dict(item.split(":") for item in dictionnaire.split(", ")) # Calcul de la moyenne des valeurs du dictionnaire somme = 0 nombre_valeurs = len(dictionnaire) for valeur in dictionnaire.values(): somme += int(valeur) moyenne = somme / nombre_valeurs print("La moyenne des valeurs est :", moyenne)
  • 27.
    QCM • Comment pouvez-vousmodifier la variable num suivante ? • modification num[2] = 'two' num[1] = 'two' num['two'] = 2 num['two'] = '2'
  • 28.
    • Quelle affirmationparmi les 4 suivantes est vraie, vis-à-vis des listes en Python ? -Tous les éléments d'une liste doivent être du même type. -Une liste peut contenir tous types d'objets à l'exception d'une autre liste. -Ces deux listes sont équivalentes : ['a', 'b', 'c'] et ['c', 'a', 'b']. -Une liste n'a pas de limite conceptuelle !
  • 29.
    • Quelle affirmationparmi les suivantes est fausse concernant les collections ? • Un tuple est un objet ordonné. • Une liste peut être modifiée. • Un dictionnaire n'est pas mutable. • Un tuple est défini avec des parenthèses.
  • 30.
    Comment peut-on interrompreune boucle prématurément ? -Via le mot clé continue -Via l'opérateur : -Via le mot clé stop -Via le mot clé break
  • 31.
    • Les codessuivants concernent différentes actions possibles avec des listes. Sélectionnez les blocs contenant des actions correctes parmi ceux ci-dessous : • Colors.insert(2,’RED’);
  • 32.
    Rappel • une listeest un tableau ordonné, modifiable, où chaque élément est associé à un indice ; • un dictionnaire est un tableau non ordonné, modifiable, où chaque élément est associé à une clé ; • un tuple est un tableau ordonné, non mutable, où chaque élément est associé à un indice ; • Un dictionnaire est donc bel et bien modifiable : il est donc mutable.