MatheX – Licence CC BY-NC-SA 4.0 - https://www.mathexien.com
Objectifs:
- Introduire Python pour les élèves de 2nd
- Synthétiser les connaissances en programmation pour les élèves de 2nd et de 1ère spé Maths
- Mettre en place des fondamentaux sur Python en début de 1ère spé NSI
Méthodologie:
Lire l'activité
Réaliser les missions en programmant sur un environnement de développement:
- en ligne ( notebook, repl.it, pythontutor , ...)
- installé sur votre ordinateur ( idle de Python, Thonny, Pycharm Community, ...)
Visionner la vidéo de l'épisode pour plus d'explications et pour la correction
Objectifs:
- Introduire le concept de condition
- Programmer des alternatives
On a souvent besoin dans un programme de n'exécuter une partie du programme que si certaines conditions sont réunies, on utilise pour cela des conditions.
En Python, on utilise l'instruction if
avec la syntaxe suivante:
xxxxxxxxxx
61if boolean :
2 instruction 1
3 instruction 2
4 ...
5 instruction n
6instruction_hors_du_if
NB:
L'indendation fait partie de la syntaxe en Python.
Le bloc d'instructions du if est indenté par rapport au if
(instructions 1 à n)
Quand on revient à l'indentation du if
, on sort du if
(instruction_hors_du_if)
xxxxxxxxxx
101if True:
2 print("OK")
3 print("la condition du if est True")
4 print('on exécute le bloc d\'instructions')
5print("on est sorti du if True:")
6if False:
7 print("KO")
8 print("la condition du if est False")
9 print('on n\'exécute pas le bloc d\'instructions')
10print("on est sorti du if False:")
Le booléen dans la condition peut résulter d'une opération qui renvoie un booléen.
Nous avons vu en #2 les opérations logiques (and
,or
,not
)
Il y a aussi les opérations de comparaison qui renvoie un booléen:
>
,<
,>=
,<=
==
(attention un simple égal est une affectation pas une comparaison)!=
xxxxxxxxxx
131a = int( input('entrez le nombre entier a:'))
2b = int( input('entrez le nombre entier b:'))
3
4if a == b:
5 print('a égal à b')
6if a != b:
7 print('a est différent de b')
8if not (a == b):
9 print('a est différent de b')
10if a < b:
11 print('a est inférieur à b')
12if a > b and a > 10:
13 print('a est supérieur à b et à 10')
Le code ci-dessous, bien que correct, n'est pas optimal car des conditions sont testées inutilement.
On préférera utiliser des alternatives.
En Python, la structure est :
xxxxxxxxxx
81if condition1:
2 instruction_1
3elif condition2: # elif = else if : la condition2 n'est pas testée si la condition1 était True
4 instruction_2
5elif condition3: # la condition3 n'est pas testée si une des conditions précédentes étaient True
6 instruction_3
7else:
8 instruction_4 # si aucune condition précédente n'est vrai alors l'instruction_4 est exécutée
Ecrire une version optimisée du programme précédent
(qui demande à l'utilisateur deux nombres entiers et affiche des messsages après comparaison)
xxxxxxxxxx
71# Ecrire votre programme ici:
2
3
4
5
6
7
Ecrire un programme qui demande à l'utilisateur un nombre entier et affiche s'il est pair ou s'il est impair.
xxxxxxxxxx
71# Ecrire votre programme ici:
2
3
4
5
6
7
Progammer un détecteur de mensonge.
Poser une série de question à l'utilisateur et détecter s'il ment ou s'il dit la vérité. NB: on peut poser la même question mais en l'espaçant dans le temps, ou poser la question inverse, ou poser des question permettant des recollements,...
xxxxxxxxxx
71# Ecrire votre programme ici:
2
3
4
5
6
7