46 0 31MB
Programmation Python : Parcours complet Pr Mamadou BOUSSO Maitre de conférence en Informatique UIDT / UFR SES M. Mansour DIOUF Doctorant en Informatique ED2DS – UIDT
PARTIE 1 Introduction à l’algorithmique en Python
Introduction à l’algorithmique
Instructions Séquentielles
Structures Conditionnelles
Structures Itératives 01/02/2021
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
2
• Avez-vous déjà ouvert et utilisé un livre de recettes de cuisine ? • Avez vous déjà déchiffré un mode d’emploi traduit directement du chinois pour faire marcher un téléphone ? Si oui, sans le savoir, vous avez déjà exécuté des algorithmes. • Plus fort : avez-vous déjà indiqué un chemin à un touriste égaré ? • Avez vous fait chercher un objet à quelqu’un par téléphone ? Si oui, vous avez déjà fabriqué – et fait exécuter – des algorithmes. Comme quoi, l’algorithmique n’est pas un savoir ésotérique réservé à quelques rares initiés touchés par la grâce divine, mais une aptitude partagée par la totalité de l’humanité. Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
3
NOTION D’ALGORITHME ET FORMALISME DÉFINITION § Un algorithme est une suite d’instruction qui permet de
résoudre un problème en un nombre fini d’étapes ;
§ Art de décomposer un problème en une suite
d’instructions simples pouvant être exécutées par un ordinateur ;
§ Suite finie de règles à appliquer dans un ordre déterminé
a un nombre fini de données pour arriver en un nombre fini d’étapes, a un certain résultat (Encyclopeadia Univ.)
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
4
Le terme Algorithme Vient du mathématicien arabe Muhammmad ibn Musa alKharezmi
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
5
NOTION D’ALGORITHME ET FORMALISME EXEMPLES D’ALGORITHMES §Itinéraire de voyage §Préparer un repas §Gestion de la file d’attente §Allocation de ressource §Etablir un plan Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
6
§ Un nombre fini d’étapes; § Un nombre fini d’opérations par étape; § Une suite d’opérations primitives; § Fournit un résultat (décidabilité) Chaque opération est : • Non ambiguë • Effective Indépendant : • Du langage de programmation dans lequel il est traduit • De l’ordinateur sur lequel le programme doit être exécuté Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
7
Historiquement, deux façons pour représenter un algorithme : v L’organigramme : Représentation graphique avec des symboles (carrés, losanges, etc.) § Offre une vue d’ensemble de l’algorithme ; § Représentation quasiment abandonnée aujourd’hui. v Le pseudo-code : Représentation textuelle avec une série de conventions § Plus pratique pour écrire un algorithme ; § Représentation largement utilisée ; Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
8
Initialisation (Entrées) – Repérer les données nécessaires à la résolution du problème. Les données sont dans l’énoncé du problème ou fournies par l’utilisateur Ex: Liste des ingrédients pour une recette de cuisine. • Traitement (Méthode) – Déterminer les étapes élémentaires (instructions) pour aboutir au résultat attendus Ex: Mélanger les ingrédients, cuire pour une recette • Restituer le résultat (Sortie) Ex: présenter le plat cuisiné
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
9
Algorithme : Calcul du prix TTC d’un produit acheté Initialisation : - Prendre connaissance du prix unitaire et du nombre d’article acheté - Prendre connaissance du taux de TVA Traitement : - Multiplier le prix unitaire avec le nombre d’article pour connaitre le prix hors taxe - Ensuite multiplier le prix hors taxe avec le taux de la TVA - Additionner les deux valeurs retrouvées Restituer le résultat : - Afficher la valeur de la somme effectuée dans le traitement Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
10
Un algorithme doit être compréhensible et lisible par plusieurs personnes. Il doit donc suivre des règles. Un algorithme est composé d’une en-tête et d’un corps L’en-tête contient : • Le nom de l’algorithme • La déclaration de tous les objets locaux à l’algorithme Le corps contient : • Le mot clé début • Une suite d’instructions • Le mot clé fin Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
11
• Un programme est la description d’un algorithme avec un langage accepté par la machine (ordinateur) ; • Un algorithme, à l’inverse d’un programme, est indépendant du langage de programmation (et donc de ce machine).
ALGORITHME
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
PROGRAMME
01/02/2021
12
Spécification algorithmique
Problème Algorithme
Traduction
Programme
Exécution
Résultats
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
13
• Analyse et définition des besoins : Ce que le programme devra réaliser comme tâche. L’analyse et la spécification du problème se fera dans un « langage naturel » • Spécification du programme : Définir spécifiquement chaque fonctionnalité du programme. • Conception : Décomposition du programme en sous problème (définition des modules du programme) ainsi que le développement des algorithmes nécessaires au fonctionnement du programme. • Programmation : Traduction des algorithmes dans le langage de programmation choisi pour la réalisation du programme. On parle d’implémentation. • Tests et validation : Phase durant laquelle le bon fonctionnement, ainsi que la conformité du programme aux spécifications sont vérifiés. • Maintenance : Activité qui assure l’entretien et le bon fonctionnement du programme tant et aussi longtemps qu’il sera utilisé. Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
14
ORDINATEUR
HARD WARE
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
SOFT WARE
01/02/2021
15
• Construit autour d’un ensemble de circuits électroniques (le courant passe, le courant ne passe pas) ; • Traite donc que des signaux assimilables à 0 ou 1 ; • Une opération élémentaire → suite de 0 et de 1 = suite de bits (BInary digiT) ; • Un champ de 8 bits constituant ce qu'on appelle 1 octet ; • Pour que les programmes et les données soient compréhensibles par l’ordinateur il faut effectuer un codage binaire ;
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
16
• Constitué de 0 et de 1 • Directement exécutable par la machine • Non portable : Chaque famille de processeur possède son langage • Ne manipule que des registres de taille fixée (64 bits en général) • Ne permet d’effectuer que des opérations élémentaires (accès mémoire, additions, soustractions, etc.) Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
17
L'ENIAC (acronyme de l'expression anglaise Electronic Numerical Integrator And Computer) est en 1945 le premier ordinateur entièrement électronique construit pour être Turing-complet. Il peut être reprogrammé pour résoudre, en principe, tous les problèmes calculatoires.
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
18
MACBOOK 2006
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
ENIAC 1945
01/02/2021
19
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
20
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
21
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
22
1. Unité de commande et de contrôle : Conduit le calcul (ordre des instructions) voulu par le programmeur 2. Unité Arithmétique et logique : Exécute les opérations arithmétiques et logiques (+-*/ et ou …) d’un programme sous le contrôle de l’unité de Commande 3. Mémoire Centrale : Permet de stocker et de restituer des informations • Correspond à un ensemble fini de cellules • Une case mémoire (cellule) contient une donnée ou une instruction • Chaque cellule est numérotée : adresse • Le processeur peut y accéder à n’importe quel moment en lecture (consultation) ou en écriture (modification)
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
23
Périphériques : Echangent avec l’environnement externe (utilisateur) Nous avons les périphériques de communication et de mémorisation Périphérique de communication • 4. Entrées : Clavier, Souris, Scanner, Web Cam, Micro • 5. Sorties : Ecran, Haut Parleur, Imprimante, Périphérique de mémorisation Disque Dur, Disquette (ancêtre de la clé USB et de la carte mémoire), CDROM...
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
24
Ordre compréhensible par l’ordinateur
Composants d’un ordinateur :
• Déclaration d’emplacement mémoire
• MP : Mémoire Centrale
• Calcul et Comparaison
• UAL : Unité Arithmético - Logique
• Lecture
• PE : Périphérique d’Entrée
• Ecriture
• PS : Périphérique de Sortie
• Tests
• UCC : Unité de Commande et de Controle
• Boucles (Répétitions)
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
25
§ Pour être compris et exécuté par un ordinateur, un algorithme doit être traduit dans un langage spécifique, qu’on appelle langage de programmation ; § On obtient ainsi ce qu’on appelle un programme informatique qui contient l’ensemble des actions consécutives que l’ordinateur doit exécuter ; § Ces actions sont appelées instructions ;
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
26
Langage assembleur – Langage symbolique textuel d’un peu plus haut niveau, – Lisible par un humain! – Non portable – La traduction en langage machine se fait via un assembleur • Exemple de programme assembleur affichant "Hello World!" sous Windows : ORG 100h MOV AH, 09h MOV DX, message INT 21h RET message db "Hello World !", '$ Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
27
Langage de haut niveau – Permettent de comprendre plus facilement le code écrit – Portables (abstraction des caractéristiques du matériel) – Manipulent des concepts plus élaborés (variables, tableaux, fonctions) Plusieurs paradigmes (logique de fonctionnement) : • La programmation impérative : Décrit les opérations en séquences d'instructions exécutées par l'ordinateur pour modifier l'état du programme (la plupart des langages sont impératifs). • La programmation objet : Consiste en la définition et l'interaction de briques logicielles appelées objets regroupant les données et les traitements qui sont liés. • La programmation fonctionnelle déclarative : Considère le calcul en tant qu'évaluation de fonctions mathématiques Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
28
Langage de haut niveau – Exemple de programme affichant "Hello World!" en Langage C #include int main() { printf("Hello World!\n"); return 0; } – Exemple de programme affichant "Hello World!" en Python 3.x print("Hello World!") Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
29
Compilation • Traduction du source en langage objet. • Elle comprend au moins quatre phases (trois phases d’analyse : lexicale, syntaxique et sémantique puis une phase de production de code objet). • Pour générer le langage machine, il faut encore une phase particulière : l’édition de liens. • Elle est contraignante mais offre au final une grande vitesse d’exécution.
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
30
Interprétation • Chaque ligne du source analysé est traduite au fur et à mesure en instructions directement exécutées. • Technique très souple mais les codes générés sont peu performants.
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
31
Interprétation du bytecode compilé (Mixte) • Compromis entre facilité de développement et rapidité d’exécution ; • Le bytecode (forme intermédiaire) est portable sur tout ordinateur muni de la machine virtuelle du langage.
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
32
• Crée en 1989 aux Pays-Bas par Guido Van Rossum • Syntaxe simple (Typage Dynamique, Indentation significative, gestion automatique de la mémoire) permettant de passer de l’algorithme au programme • Portable sur tous les systèmes d’exploitation : Windows, Linux, Macintosh • Langage open source • Disponibilité de plusieurs milliers de bibliothèques • Deux modes d’utilisation : - script (écriture du programme dans un fichier) - interactif (similaire à une calculatrice) • Langage interprété rapide • Permet de mettre en œuvre les trois paradigmes (impérative, objet et fonctionnel) Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
33
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
34
Préambule
Variable et Constante
Instructions Séquentielles
Expression, Affectation et Calcul
Lecture
Ecriture 01/02/2021
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
35
KARIM POSSÈDE 3 SEAUX : •
UN SEAU EN PLASTIQUE D’UNE CONTENANCE DE 10 LITRES,
•
UN SEAU EN BOIS D’UNE CONTENANCE DE 7 LITRES
•
UN SEAU EN FER D’UNE CONTENANCE DE 9 LITRES 10H00 : KARIM VIDE SES 3 SEAUX 10H05 : KARIM VA RENDRE VISITE A DEMBA, CELUI-CI MET 6 LITRES DANS LE SEAU EN BOIS DE KARIM 10H10 : KARIM TRANSVERSE LE CONTENU DE SON SEAU EN BOIS DANS LE SEAU EN FER 10H15 : KARIM REVIENT VERS OUMAR REMPLIR À RAS BORD SON SEAU EN PLASTIQUE 10H20 : KARIM DÉVERSE LA MOITIÉ DE SON SEAU EN PLASTIQUE À L’ÉGOUT 10H25 : KARIM TRANSVASE LE CONTENU DE SON SEAU EN PLASTIQUE DANS CELUI EN BOIS 10H30 : KARIM TRANSVASE 2 LITRES DE SON SEAU EN BOIS DANS CELUI EN FER 10H35 : KARIM INFORME HABIB DU NOMBRE DE LITRES CONTENU DANS SES SEAUX EN PLASTIQUE, EN BOIS, EN FER. QUELLES SONT LES QUANTITÉS DES TROIS SEAUX QUE HABIB REÇUES ?
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
36
PLASTIQUE (10L)
0L
0L
0L
0L
10L
5L
0L
0L
BOIS (7L)
3L
0L
6L
0L
0L
0L
5L
3L
FER (9L)
8L
0L
10h00 Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
0L
10h05
6L
10h10
6L
10h15
6L
10h20
6L
10h25
8L
10h30 01/02/2021
37
Définition : C’est un emplacement mémoire dont la valeur peut changer au cours de l’exécution d’un programme. • Une variable possède un nom, on parle d'identifiant ; • Une variable possède une valeur ; • Une variable possède un type qui caractérise l'ensemble des valeurs que peut prendre la variable. Formalisme de déclaration d’une variable en algorithme :
VARIABLE nom_de_la_variable : type_de_la_variable
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
38
On peut faire l'analogie avec notre énigme précédente : • Les seaux seraient les variables ; • Le contenu d’un sceau serait la valeur de la variable correspondante ; • La matière du sceau serait le type de la variable (plastique, verre, fer)
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
39
Choix des identificateurs Le choix des noms de variables est soumis à quelques règles qui varient selon le langage, mais en général : l Un nom doit commencer par une lettre alphabétique Exemple valide : A1 Exemple invalide : 1A l Doit être constitué uniquement de lettres, de chiffres et du soulignement _ (Eviter les caractères de ponctuation et les espaces) Valides : msda2020, msda_2020 Invalides : msda 2020, msda-2020, msda;2020 l Doit être différent des mots réservés du langage (par exemple en Python : int, float, else, def, for, if , while, return, …)
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
40
Définition du type Le type d’une variable détermine l’ensemble des valeurs qu’elle peut prendre. Il y a deux grandes catégories de type : • Les types simples ; • Les types composés.
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
41
Définition du type l Type numérique (entier ou réel) l Byte (codé sur 1octet): de 0 à 255 l Entier court (codé sur 2 octets) : -32 768 à 32 767 l Entier long (codé sur 4 ou 8 octets) l Réel simple précision (codé sur 4 octets) l Réel double précision (codé sur 8 octets) l Type logique ou booléen : Deux valeurs VRAI ou FAUX l Type caractère : lettres majuscules, minuscules, chiffres, symboles, … Exemples: ’A’, ’a’, ’1’, ’?’, … l Type chaîne de caractères : Toute suite de caractères, Exemples: " Nom, Prénom", "code postale: 1000", …
Attention : La définition de type n’est pas obligatoire pour tous les langages. Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
42
Définition : C’est un objet qui ne possède pas d’emplacement mémoire réservé. l
Sa valeur est directement placé dans le code du programme ;
l
Elle ne peut pas voir sa valeur modifiée.
Exemple : Constante PI = 3,14 l
La constante a un typage dynamique Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
43
Python permet de manipuler toutes sortes de données : l l l l
Entiers : 0, -12, 3569 Flottants : 0.232, 3.1415, -12.0 Booléens : True, False (vrai, faux) Chaines de caractères : ”Bonjour les amis”
Python étant un langage de programmation interprété donc la déclaration de variable n’est pas nécessaire. Il suffit juste d’écrire l’identifiant de la variable puis de lui fournir une valeur ensuite Python se chargera de calculer le type et de l’attribuer à la variable. Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
44
Les mots reserves et regle de nomination:
Regle de nomination d'une variable: - Snake Case pour les noms de fonctions et de variables: number_of_college_grad uates - Pascal Case pour les noms de classes: NumberOfColle geGraduates Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
45
Exemple :
type(identifiant_variable) permet de retourner le type d’une variable.
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
46
Les types de base : les entiers (int) § Permet de représenter n’importe quel entier positif ou négatif § On utilise l’écriture en base du 10 du nombre avec un signe optionnel
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
47
La fonction standard int() § Permet de convertir n’importe quelle valeur compatible vers l’entier correspondant
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
48
Les types de base : les réels (float) §
Permet de représenter une partie des nombres à virgule ;
§
La séparation entre partie entière et partie décimale se fait avec un point ;
§
On peut également utiliser l’écriture scientifique avec un E ou un e suivi d’une puissance de 10.
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
49
La fonction standard float() : §
Permet de convertir n’importe quelle valeur compatible vers le nombre réel correspondant.
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
50
Les types de base : les booléens (bool) • Permet de représenter les valeurs logiques VRAI et FAUX • Deux mots réserves en python : True et False • N’importe qu’elle donnée en Python possède une valeur logique : – les valeurs non nulles valent True – les valeurs vides ou nulles valent False
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
51
Les types de base : les chaines de caractères (str) § Permet de représenter les textes ; § Les valeurs littérales sont entourées : par des apostrophes (’), des guillemets (”) ou bien des triples quottes (’’’ ou ”””)
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
52
La fonction standard str() : § Permet de convertir la plupart des valeurs dans leur représentation en texte.
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
53
En Python, les chaines de caractères sont dits immutables (une fois constituée en mémoire, elles ne sont plus modifiables) Les opérations de modification sur les chaînes produisent donc de nouvelles chaînes.
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
54
l
Un opérateur est un symbole d'opération qui permet d'agir sur des variables ou de faire des calculs ;
l
Une opérande est une entité (variable, constante ou expression) utilisée par un opérateur ;
l
Une expression est une combinaison d'opérateur(s) et d'opérande(s), elle est évaluée durant l'exécution de l'algorithme, et possède une valeur (son interprétation) et un type. Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
55
Par exemple dans a + b : • a est l'opérande gauche • + est l'opérateur • b est l'opérande droite • a + b est appelé une expression • Lorsque a vaut 4 et 5 vaut 3, l'expression a + b vaut 9 • Lorsque a et b sont des entiers, l'expression a + b est un entier Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
56
L'évaluation de l'expression fournit une valeur qui est le résultat de l'opération ; Les opérateurs dépendent du type de l'opération, ils peuvent être : §
des opérateurs arithmétiques : +, -, *, /, % (modulo), ^ (puissance)
§
des opérateurs logiques : NON, OU, ET
§
des opérateurs relationnels : = , != , < , > , =
§
des opérateurs sur les chaînes : & (concaténation)
Une expression est évaluée de gauche à droite mais en tenant compte de priorités
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
57
Pour les opérateurs arithmétiques donnés ci-dessus, l'ordre de priorité est le suivant (du plus prioritaire au moins prioritaire) : ^ : (élévation à la puissance) * , / (multiplication, division) % (modulo) + , - (addition, soustraction) Exemple : 4 + 3 * 5 vaut 19 En cas de besoin (ou de doute), on utilise les parenthèses pour indiquer les opérations à effectuer en priorité (ou en premier) Exemple : (2 + 3) * 7 vaut 35 Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
58
Nous avons les opérateurs relationnels suivants : – Égalité (= ou ==) – Inégalité ( ou !=) – Supérieur (>) – Supérieur ou égal (>=) – Inférieur ( 10 : Ecrire « passable » Note > 12 : Ecrire « assez bien » Note > 14 : Ecrire « bien » Note > 16 : Ecrire « très bien » Sinon : Ecrire « ajourné » Fin_selon_que Fin_algo Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
96
Bloc if : Lorsque la condition logique est vérifiée, le bloc d’instructions (instruction1 et instruction2) est exécuté. Si la condition n’est pas vérifiée le bloc n’est pas exécuté et on passe aux instructions après le if.
N = int(input("Entrer la valeur de N ")) if N>0: print(f"Le nombre {N} est positif")
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
97
Bloc if...else : Spécifie un second bloc d’instructions qui est exécuté lorsque la condition du if n’est pas vérifiée
N = int(input("Entrer la valeur de N ")) if N>0: print(f"Le nombre {N} est positif") else: print(f"Le nombre {N} est négatif ou nul")
Python, UIDT / SES / MSDA / M. BOUSSO - M. DIOUF
01/02/2021
98
Bloc if...elif...else : Spécifie des conditions ou des choix multiples avec une batterie de tests.
N = int(input("Entrer if N>0: print(f"Le nombre elif Nfin: return False else: # Diviser m = (debut+fin)//2 if tableau[m]==elm_a_trouver: return True else: # Régner if elm_a_trouver