1/78
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
A quoi sert l’opérateurs de comparaison
Pouvoir poser des conditions et de prévoir des traitement alternatif selon si les conditions sont vraie ou fausse
<
Plus petit que
>
Plus grand que
<=
Plus petit ou égal à
>=
Plus grand ou égal à
==
Est égal à
!=
Est différent de
Une expression booléenne
est une expression qui utilise un opérateur de comparaison et dont la valeur est vraie ou fausse - en Python, on parlera des valeurs True ou False.
X = 5
print(x<100)
True
X = 5
print(x>=5)
True
X = 5
print(x==5)
True
X = 5
print(x!=5)
False
Difference entre = et ==
x = 5 est une instruction complète qui place la valeur 5 dans la variable x.
X= 5 est une expression booléenne qui est utilisée comme structure conditionnelle
Il est souvent nécessaire de choisir entre plusieurs traitements, on doit utiliser
If, suivit d’une condition (expression booléenne) qui une foie évaluer prendra la valeur true ou false
La syntaxe de l'instruction if exige les points suivants:
La condition doit être suivie d'un :
Les instructions qui sont à exécuter seulement si la condition est vraie doivent être indentées, c'est-à-dire précédées d'un nombre fixe d'espaces.
Qu’est-ce que ce code affiche?
age = int(input("Quel est votre âge?"))
if age>=100:
print("Wow, vous êtes centenaire!")
print("Bravo!")
print("-- Fin du programme --")
Demande l’âge, si ce n’est pas 100 ans, rien ne s”affiche
L’indentation
Équivalent de 4 espaces, ils sont souvent inséré automatiquement
Le programmeur désire parfois spécifier également des instructions à exécuter lorsque la condition est fausse.
On utilise alors le mot-clé else, qui signifie sinon.
Qu’est-ce je ce code produit?
age = int(input("Quel est votre âge?"))
if age<18:
print("Vous êtes mineur")
else:
print("Vous avez atteint la majorité")
print("-- Fin du programme --")
Demande l’âge, si plus que 18 : atteins la majorité
Dans le cas où une première condition serait fausse, on veut parfois pouvoir continuer à tester une ou plusieurs autres conditions pour déterminer le bon traitement à réaliser.
On utilise alors le mot-clé elif (pour else if) qui signifie sinon si.
Comment est ce que les conditions sont testé
Les conditions sont alors testées dans l'ordre où elles apparaissent, et une fois qu'une condition s'est avérée être vraie, aucune autre condition de la même structure ne sera testée par la suite.
Quoi faire si aucune des conditions s’applique
On peut poser else: qui permet de définir les restes
Qu’elle est le problème de ce code?
x = int(input("Entrez un nombre"))
if x<0:
print("Le nombre est invalide.")
if x>= 0:
print("Merci le nombre est valide!")
Test superflue
Structure rectifiée, meilleure efficacité
if x<0:
print("Le nombre est invalide.")
else:
print("Merci le nombre est valide!")
Il est possible de tester simplement si une valeur est incluse entre deux autres, en une seule expression :
age = int(input("Quel est votre âge?"))
if 13 <= age < 18:
print("Vous êtes adolescent")
Il est possible d’imbriquée des structures conditionnelles en
if condition:
if condition:
if condition:
Une structure imbriquées permet de
Former une structure de descision complex
Exemple de structure imbriqué
valeur_theorique = 5.0e-2
valeur_experimentale = 5.5e-2
diff_relative = abs(valeur_experimentale - valeur_theorique) / valeur_theorique
if diff_relative < 0.03: #différence de moins de 3%
print("Résultat très proche de la valeur théorique")
elif diff_relative < 0.10:
print("Résultat acceptable, légère différence")
else:
print("Problématique!")
if diff_relative < 0.25:
print("Résultat éloigné de la valeur théorique")
else:
print("Différence énorme: vérifier l'instrument de mesure!")
Lorsqu'on rédige un algorithme en langage naturel et qu'on doit poser une condition, on utilise simplement
les termes français correspondants : si / sinon si / sinon. Il faut ajuster l’indentation
On peut effectuer des opérations logiques sur des expressions booléennes pour les enchaîner ou en inverser la valeur avec
Les opérateurs logique and,or, not
And
“Et” binaire
Or
“Ou” binaire
Not
“Non”/“pas” un aire
L'opérateur and (et) sert à
vérifier que deux expressions booléennes sont vraies. Si les deux opérandes de l'opérateur and sont vraies, le résultat True est produit. Dans tous les autres cas, le résultat False est produit
Table de vérité de and
A and B, seront true seulement quand A est true et B est true
x = 5
nom = "bonjour"
print(x > 3 and x < 99)
print(x > 3 and x > 99)
print(x!=5 and nom=="bonjour")
print(x==5 and nom=="bonjour" and x>0 )
True, false, false, true
L'opérateur or (ou) sert à vérifier si
au moins une des deux expressions booléennes est vraie. Si une des deux opérandes de l'opérateur or est vraie, ou si les deux sont vraies, alors le résultat True est produit. Sinon, le résultat False est produit.
Table de vérité de l’opérateur or
Seulement false quand a est false et b est false
L'opérateur not (pas/non) calcule
la négation d'une expression booléenne. En d'autres termes, il produit True si la valeur de l'expression est False et produit False si la valeur est True.
age= int(input("Entrez votre age"))
if not(age<0 or age>120):
print("C'est possible")
else:
print("Je crois que vous mentez!")
Si âge plus petit que 0 ou plus grand que 120, il dira qu’on ment
Une variable peut être de type :
Entier, flottant et booléen
Seules Variable booléen
True or false
temperature = int(input("Entrez une température"))
est_chaud = temperature > 25
est_froid = temperature < 0
print("Est-ce chaud?", est_chaud)
print("Est-ce froid?", est_froid)
if est_chaud :
print("C'est une agréable journée d'été.")
If est chaud: est la forme simplifie de if est chaude = true :
Qu’elle est le problème de ce code?
import random
x = random.randint(1, 10)
if x = 10:
print("Bravo vous avez lancé un 10!")
= devrait être ==
Est ce que le programme est efficace?
if temperature < 0 : print("froide") elif temperature <= 25 : print("moyenne") else : print("chaude")
Oui
Est ce que le programme est efficace?
if temperature < 0 : print("froide") elif temperature >= 0 and temperature <= 25 : print("moyenne") elif temperature > 25: print("chaude")
fonctionne mais pas optimal : x2elif et double condition non nec
On peut répéter un code avec
Les structures répétitives for ans while
Structure for
On connais le nombre d’itérations (répétitions)
Structure while
nombre d'itérations à réaliser n'est pas connu à l'avance et dépend plutôt de la valeur d'une variable qui évolue dans la boucle elle-même.
Itérateur
Aussi appelé variable d’itération, correspond à k,n ect
Syntax de l’instruction for
for var in range(n) : # entête de la boucle instruction(s) # corps de la boucle avec instructions indentées
Var est la variable d’itération et range produit la séquence n-1
Comment var est exécuté
On comme avec 0, et on continue jusque n-1
Qu’est-ce que ce code et que produit il
for k in range(5) :
print("Bonjour!")
print("Itération #", k )
print("La boucle est terminée!")
Bonjour !
Itération #0 jusqu’à 4
Pourquoi nommer somme = 0?
nb_max = int(input("Entrez un nombre entier:"))
somme = 0
for k in range(nb_max) :
somme = somme + (k+1) #+1 pour cibler de 1 à nb_max
print(f"La somme des nombres de 1 à {nb_max} est: {somme}")
Sinon python sera incapable d’évaluer l’expression de la somme + (k+1). On appele cela initialiser la variable somme
La fonction range peut aussi être utilisée…
Pour précision différente plage de valeur
range( debut, fin, pas )
Qu’est-ce que ce code exécute?
print("Nombres de 4 à 11 exclu par bonds de 2:")
for i in range(4, 11, 2):
print(i)
Nombres de 4 à 11 exclu par bonds de 2Qu’est-ce que ce code exécute?
print("Nombres de 0 à -20 exclu par bonds de -5:")
for k in range(0, -20, -5):
print(k)
nombre de 0 à -20 exclue par bond de -5
Qu’est-ce que ce code exécute?
print("Nombres de 3 à 6 exclu par bonds de 1:")
for compteur in range(3, 6):
print(compteur)
Nombre de 3 à 6 exclue par bond de 1
3
4
5
Qu’est-ce que ce code exécute?
for k in range(4, 3):
print(k)
Il ne s’exécute pas
Qu’est-ce que ce code exécute?
for k in range(4, 6, -2):
print(k)
print("Au revoir!")
Au revoir
Si les institutions d’une boucle ne sont pas exécuté…
Il seront passé et l’ordi passera à la prochaine
On peut aussi utiliser la boucle for pour
Itere sur les caractère individuel d’une chaîne
Qu’est ce que ce programme fait
for c in "Bonjour":
print(c)
B
O
N
J
O
U
R
Qu’elle boucle affiche
1234
for k in range (1,5)
Print (k)
Qu’affiche ce code?
total = 100
for k in range(3):
total = total - k
print(total)
97
Quand le nombre d'itérations à réaliser n'est pas connu à l'avance, c'est la boucle
While (tant que)
Combien de fois une boucle while sera répété?
Le corps de cette boucle sera répété tant qu'une certaine condition est vraie (True)
Comment écrire une boucle while
while condition : # entête de la boucle avec condition pour la poursuivre instruction(s) # corps de la boucle avec instructions indentées
Si quelqu’un entre un donné positive:
nombre = int(input("Entrez un nombre positif ou nul"))
while nombre < 0:
nombre = int(input("C'est un nombre négatif! Recommencez:"))
print("Merci. Le double de ce nombre est: ", nombre*2)
La condition while ne sera pas tester et le double du no bye sera donné
Qu’est-ce que ce programme demande
somme = 0
nombre = int(input("Entrez un nombre positif:(ou <=0 pour arrêter)"))
while nombre > 0:
somme = somme + nombre
nombre = int(input("Entrez un autre nombre"))
print("La somme des nombres positifs entrés est:", somme)
Répète la question jusqu’à q’on obtient un nombre négatif
Comment produire une boucle infinie
rédige une condition du while qui demeure toujours vraie
Que produit ce code?
k = 0
somme = 0
while k>=0:
somme = somme - 1
print("--Fin du programme")
Une boucle infini
Combien de fois la boucle s’effectue?
x = 0
while x < 4 :
print(x)
x += 2
2 fois
Combien de fois la boucle s’effectue?
total = 7
while total > 0:
print(total)
total = total - 3
3 fois
Qu’est-ce qu’une boucle imbriquée ?
Une boucle dans une autre boucle
Comment faire une boucle imbriquée?
la boucle intérieure devra se terminer avant d'entreprendre une itération supplémentaire de la boucle extérieure.
Qu’est-ce que ce code produit?
for i in range(3):
for j in range(4):
print("i=", i, "j=", j)
Quand I = 0, j = 0 , 1, 2, 3
Ect
Qu’est-ce que ce code produit?
import random
nb_coups = 0
somme_cumulee = 0
while somme_cumulee < 100:
nb_coups += 1
for k in range(5): # pour chacun des cinq dés
somme_cumulee += random.randint(1, 6)
print("Simulation: le joueur dû lancer", nb_coups, "coups!")
La somme de 5 des
Un algorithme permet de
d'élaborer les étapes de résolution sans se préoccuper de la syntaxe imposées pour un langage particulier.
Pour utiliser une boucle dans un algorithme avec language naturel on utilise les synonymes suivant:
répéter 4 fois
pour k allant de 0 à 10 par bonds de 2 faire
tant que total < 100 faire
répéter jusqu'à total >= 100