23
Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 1 sur 23 APPRENDRE A PROGRAMMER EN PYTHON NIVEAU 1 I. Avant de commencer.________________________________________________________________ 2 II. Langages de programmation. _________________________________________________________ 5 III. Le langage Python : généralités. _____________________________________________________ 6 IV. Structures de données : Les variables. ________________________________________________ 8 V. Types de données de base. ___________________________________________________________ 10 VI. Opérateurs, Delimiteurs et Expressions.______________________________________________ 13 VII. Structures de contrôle : Instructions. ________________________________________________ 17 VIII. Instructions de base. ___________________________________________________________ 19 Matériel : Ordinateur, accès Internet. Logiciels : Python version 3.6 ; package Thonny ; pythontutor.com. Pré-requis pour prendre un bon départ : ☺☺ Différencier une grandeur et sa valeur ou, ce qui revient au même, une fonction et la valeur d’une fonction. Manipulations informatiques basiques : ouvrir, copier, enregistrer un fichier ; aller et trouver sur Internet etc. + =

Cours Python Niveau 1 - yalamaths.free.fryalamaths.free.fr/documents/isn/Langages/Python/TleS_ISN... · Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page

Embed Size (px)

Citation preview

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 1 sur 23

APPRENDRE A PROGRAMMER EN PYTHON

NIVEAU 1

I. Avant de commencer. ________________________________________________________________ 2

II. Langages de programmation. _________________________________________________________ 5

III. Le langage Python : généralités. _____________________________________________________ 6

IV. Structures de données : Les variables. ________________________________________________ 8

V. Types de données de base. ___________________________________________________________ 10

VI. Opérateurs, Delimiteurs et Expressions. ______________________________________________ 13

VII. Structures de contrôle : Instructions. ________________________________________________ 17

VIII. Instructions de base. ___________________________________________________________ 19

➢ Matériel : Ordinateur, accès Internet.

➢ Logiciels : Python version 3.6 ; package Thonny ; pythontutor.com.

➢ Pré-requis pour prendre un bon départ :

☺ ☺☺ Différencier une grandeur et sa valeur ou, ce qui revient au même, une

fonction et la valeur d’une fonction.

Manipulations informatiques basiques : ouvrir, copier, enregistrer un

fichier ; aller et trouver sur Internet etc.

+

=

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 2 sur 23

I. AVANT DE COMMENCER.

A. Comment utiliser ce livret :

Contrairement au titre un peu présomptueux, ce livret, seul, ne pourra pas vous donner la science

pythonesque. Ce livret doit être utilisé en conjonction avec la plateforme d’apprentissage de France IOI sur

Internet.

La pédagogie choisie est donc celle du self-learning (apprentissage par soi-même) inversé : la pratique

d’abord sur France IOI puis la théorie ensuite avec ce livret.

Ce livret est donc à considérer comme un post-cours qui permet de remettre les connaissances à plat,

d’éclairer un point de syntaxe ou un concept et donc de faire le point.

Ce livret correspond globalement au niveau 1 de la formation Python de France IOI.

B. Le site internet France IOI :

Ce site extraordinaire, sans éxagérer, labellisé Education Nationale, est le site d'entraînement et de

sélection de l'équipe de France aux Olympiades Internationales d'Informatique (IOI).

Cet entraînement est ouvert à tous, il suffit de s’inscrire :

o En haut à gauche s’inscrire (Se connecter).

o Rejoindre dans la foulée le groupe lasource2017.

Ça y est, vous êtes fin prêt pour commencer les entraînements (partie Progresser / cours et problèmes). La

partie programmation du programme officiel d’ISN correspond aux niveaux 1 et 2 jusqu’aux fonctions.

Mais avant cela, il vous faut installer Python et Thonny sur votre propre machine.

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 3 sur 23

C. Installer Python :

Télécharger Python dans sa dernière version sur le site python.org puis l’installer.

Deux applications principales ont été installées :

o Python 3.6 : la console python.

o IDLE (Python 3.6) : l’environnement de développement.

1. La console Python :

Lançons Python 3.6 (pas IDLE) afin de tester cette console python. Une fenêtre assez rustique s’ouvre.

o Taper un calcul puis taper la touche d’entrée. On obtient évidemment le bon ……………….….. !

Donc la console Python peut faire office de …………………………..

o Taper une instruction du langage python : par exemple le classique print ("Hello world !).

On obtient un message d’………………….. de syntaxe.

Retaper l’instruction précédente en la corrigeant afin qu’elle renvoie correctement Hello world !.

• La console Python ou Interpréteur interactif (ou shell en anglais) est une fenêtre simple permettant

d’exécuter les instructions dès qu’on appuie sur la touche « Entrée-Enter » du clavier.

• Cette console est très utile pour :

tester les instructions.

vérifier une syntaxe.

consulter une aide sur Python.

Attention, cette console n’est pas un éditeur de programme !

Vous ne pourrez pas y écrire ou y corriger un programme. Elle doit être plus simplement vue comme un

terminal de consultation.

2. L’environnement de développement IDLE :

Pour écrire, éditer des programmes, il faut travailler dans un environnement prévu à cet effet :

l’Environnement de Développement Intégré (IDE en anglais).

IDLE (Integrated DeveLopment Environment) est l’environnement basique (trop basique) de

développement fourni avec Python. Il en existe beaucoup d’autres ! Dont Thonny.

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 4 sur 23

D. Thonny :

Thonny est un environnement de développement créé par Aivar Annamaa (Université de Tartu - Estonie).

Son interface simple a été pensée pour les débutants en Python.

1. Installation :

➢ Sous Windows :

o Si Python est déjà installé :

Ouvrir l’Invite de Commandes.

Taper : pip install thonnyapp

o Si Python n’est pas installé :

Aller sur le site de Thonny.

Télécharger Thonny.

➢ Sous Mac ou Linux :

Aller sur le site de Thonny.

Télécharger Thonny.

2. Options ergonomiques à activer :

o Menu Tools / Options / Editor : tout cocher.

o Menu View : cocher au moins Help – Shell – Variables.

3. Pour installer si besoin des modules externes :

o Menu Tools / Manage packages…

o Entrer le nom du module désiré (Pygame par exemple) puis Search.

o Install.

Voilà tout est prêt, plus besoin de console Python et/ou de IDLE, tout est intégré dans Thonny !

Encore quelques généralités sur les langages de programmation et on pourra pythoner !

Ai-je tout compris ? Préparatifs. ☺ ☺☺

Comment utiliser ce cours ?

Inscription sur France IOI et avoir rejoint le bon groupe.

Qu’est-ce que France IOI ?

Installer Python.

Qu’est-ce que la console Python ?

Qu’est-ce qu’un IDE ?

Installer et configurer Thonny.

Console

Editeur de code

Etat des variables

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 5 sur 23

II. LANGAGES DE PROGRAMMATION.

A. Dualité Algorithme – Programme :

Un programme est un texte qui permet de faire exécuter un …………….……………..…..1à une machine.

Ce texte est écrit dans un langage particulier appelé « langage de programmation ».

Par analogie langagière, l’algorithme est l’histoire racontée par ce texte et le langage de programmation

est la langue dans laquelle est écrite cette histoire.

➢ Produire un bon gros programme est la rencontre d’une bonne histoire (un algorithme intéressant,

efficace etc.) avec un bon style (une bonne maîtrise de la programmation).

Trouver une bonne histoire relève de l’Algorithmique (voir cours sur les Algorithmes). Cela passe

forcément par l’étude des grands classiques (les algorithmes de base).

Avoir du style relève de la programmation. Cela passe par l’étude du langage de programmation.

➢ Apprendre un langage de programmation, c’est d’abord apprendre le vocabulaire et la grammaire

attachés à ce langage, ce qui permettra d’écrire de petits programmes ou scripts (de petites histoires, de

petites mélodies sans prétention) puis on avance vers des textes plus ambitieux.

B. Diversité des langages de programmation :

➢ De la même manière qu’il existe environ 7 000 langues vivantes dans le Monde dont environ 200

écrites2, il existe des milliers de langages de programmation : ……………………………………………..3

Le classement IEEE Spectrum indique les langages informatiques les plus utilisés dans le Monde.

➢ Les langages de programmation sont en général classés selon 2 critères (rechercher sur Internet) :

o leur(s) paradigme(s) de programmation (leur approche de la programmation) : ........................

............................................................................................................................................................

o leur typage (façon dont est indiqué le type des variables) : ........................................................

............................................................................................................................................................

➢ Exemples : Pour les langages de programmation suivants, indiquer leur paradigme et leur typage.

Langages Paradigme(s) Typage

Python

Langage C

Haskell

➢ D’autres critères permettent de différencier les langages de programmation :

o comment sont exécutées les instructions ? : langages interprétés (Python), langages compilés (C).

o la plus ou moins proximité avec le langage binaire-machine qui est le langage de plus bas niveau.

1Rappel : « Un algorithme est une suite finie et non ambigüe d’instructions et/ou d’opérations permettant d’effectuer une tâche ou résoudre un

problème en un temps fini. Le mot algorithme vient du nom latinisé du mathématicien perse Al-Khawarizmi (IX siècle ap. JC.).

Le domaine qui étudie les algorithmes est appelé l'algorithmique. » Wikipédia.

2 http://www.axl.cefan.ulaval.ca/Langues/1div_recens.htm.

3 https://fr.wikipedia.org/wiki/Liste_de_langages_de_programmation.

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 6 sur 23

➢ Il n’est pas nécessaire d’apprendre un maximum de langages : en effet, tous les langages ayant le même

paradigme reposent plus ou moins sur les mêmes concepts de base.

Ai-je tout compris ? Langages de programmation. ☺ ☺☺

Qu’est-ce qu’un programme ?

Qu’est-ce que le paradigme d’un langage de programmation ?

Citer quelques paradigmes de programmation.

Qu’est-ce que le typage d’un langage de programmation ?

Citer une sorte de typage.

Citer d’autres critères qui permettent de différencier les langages de prog.

III. LE LANGAGE PYTHON : GENERALITES.

Ce cours concerne le très populaire langage de programmation libre et

multiplateformes Python dans sa version 3.6.

D’après le chapitre précédent II.B p.5, on sait que Python est un langage :

o de paradigme ................................................ et ......................................................

o à typage .......................................................................

A. Python dans le Monde :

➢ Ce langage informatique créé en 1991 par le hollandais

Guido Van Rossum a été baptisé ainsi en l’honneur du célèbre

groupe de comiques anglais The Monthy Python’s Flying Circus.

➢ Python est un langage plutôt simple pédagogiquement

(écriture-syntaxe simple, peu de mots clé à retenir au début).

Ainsi, en 2014, Python avait dépassé Java comme langage

d'initiation à la programmation des étudiants américains : 8 des

10 cursus en informatique des meilleures universités américaines s’en servaient pour enseigner le codage. Et

c'était aussi le cas de 27 des 39 grandes écoles d'Informatique des Etats Unis.

De même, Python est le langage qui a été choisi par l’Education Nationale pour l’apprentissage de la

programmation au Lycée (Scratch au Collège).

➢ N’allez pas croire que Python est cantonné à l’apprentissage de la programmation !

Il est aussi utilisé dans des applications lourdes et sensibles : par exemple dans le secteur financier pour

l'analyse des données. Et c’est un langage très demandé par les employeurs au même titre que Java et C.

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 7 sur 23

B. Les ingrédients fondamentaux des programmes :

Apprendre la programmation, ce n’est pas seulement apprendre à écrire un programme mais c’est aussi

comprendre de quoi il est fait, comment il est fait et ce qu’il fait.

Voici un petit programme écrit en Python :

1. Que fait ce programme ? Quel nom pourrait-on lui donner ?

2. De quoi est composé ce programme ?

Un programme est essentiellement constitué d’expressions ou structures de données et d’instructions ou

structures de contrôles.

Le cours d’algorithmique nous apprendra qu’il y a 4 ingrédients de base quel que soit le programme :

• 1 structure de données : les variables.

• 3 structures de contrôle :

o les séquences d’instructions.

o les tests conditionnels ou alternatives.

o les boucles ou répétitions.

Ai-je tout compris ? Python généralités. ☺ ☺☺

Qu’est-ce que Python ?

Quels sont le paradigme et le typage du langage Python ?

Quels sont les 4 structures fondamentales des programmes ?

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 8 sur 23

IV. STRUCTURES DE DONNEES : LES VARIABLES.

Un programme a pour but d’effectuer une tâche ou résoudre un problème donc forcément des choses ont

varié après exécution de ce programme car on est passé d’un état non traité à un état traité.

Ces choses qui varient s’appellent évidemment des …………………………...

A. Qu’est-ce donc ?

Une variable est une donnée du programme stockée dans la mémoire de l’ordinateur.

Une variable a 2 caractéristiques : son nom et sa valeur.

➢ Il faut imaginer la mémoire de l’ordinateur comme

une grosse armoire avec plein de petites b. Certaines de

ces boîtes ont un nom : ce sont des variables, et elles

peuvent contenir une valeur.

➢ En reprenant l’exemple p.7 de la bataille navale,

lorsque l’instruction « a = 7 » est exécutée, une des

petites boîtes prend pour nom « a » (c’est la déclaration

de la variable) et la valeur « 7 » est mise dans cette boîte

(c’est l’affectation de valeur à la variable). La variable

« a » est le contenant et la valeur « 7 » est le contenu.

Illustration

B. Déclaration de variable :

Déclarer une variable, c’est en fait ....................................... cette variable.

Dans la machine, une boîte mémoire est réservée et le nom de la variable est attribué à cette boîte mémoire.

Sur ce point, le langage Python demande une moindre rigueur que d’autres langages.

Par exemple, en langage C ou avec Algobox, il est obligatoire de déclarer (et typer) une variable avant que

celle-ci n’apparaisse dans une instruction, auquel cas il y aura une erreur (de compilation) !

Alors qu’en Python, la déclaration d’une variable (et son typage) se fait dynamiquement à l’exécution dès

que cette variable apparait dans une ligne de code.

C. Règles de nommage d’une variable :

1. Le nom d’une variable :

o ne peut pas être l’un des 29 + 3 mots réservés du langage Python : …………………………………

o ne peut jamais commencer par un chiffre.

o est exclusivement composé de lettres Majuscules et/ou de minuscules accentuées ou pas, de chiffres.

Symbole souligné « _ » (underscore en anglais) autorisé. Autres caractères spéciaux interdits !

o est sensible à la casse : les minuscules sont différentes des MAJUSCULES. Exemple : Age ≠ age.

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 9 sur 23

2. Le nom d’une variable doit être explicite !

Contrairement aux Maths où l’on se contente souvent d’une simple lettre pour nommer une variable, il faut

choisir des noms explicites pour ses variables afin que le programme soit lisible par n’importe qui

d’autre que le concepteur. Exemple nbdecamions et non n.

3. Eviter le mélange minuscule-Majuscule et les caractères spéciaux :

Cela évite bien des erreurs idiotes qui font perdre du temps pour pas grand-chose !

4. Application :

Entourer : en rouge les noms de variable entraînant une erreur d’exécution.

en bleu les noms de variables n’entraînant pas d’erreurs d’exécution mais mal choisis.

valeurs A’ beau_pere nbbeauperes nbbelle-meres belle fille nbbeau_fils. tableau

_zarbi poids TempCorps temp-peau TC nan_mais_allo_quoi False _True 1ereS n1 var

Ai-je tout compris ? Variables. ☺ ☺☺

Qu’est-ce qu’une variable ?

Que se passe-t-il dans la machine lorsqu’on déclare une variable ?

Règles de nommage des variables ?

Voyons maintenant quels types de données peuvent contenir ces variables.

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 10 sur 23

V. TYPES DE DONNEES DE BASE.

➢ On n’a manipulé jusqu’à maintenant que des nombres. Toutes les données à manipuler ne sont

heureusement pas que des nombres !

Il existe en Python (comme dans tout langage de programmation) une grande variété de types de données, ce

qui fait la richesse de ces langages et leur souplesse.

La liste complète est ici : https://fr.wikiversity.org/wiki/Python/Les_types_de_base.

➢ Ci-dessous 4 types de données incontournables :

Nom du type (anglais) Nom du type (français) Code du type Description

Integer Entier relatif int Entier relatif compris entre -2n 1 1 et 2n 1 pour un

codage sur n bits(voir cours codage binaire).

Floating point

number

Nombre à virgule

flottante float

Représente un réel (approximativement).

S’écrit avec un point (ex : 2.68) et non une virgule.

Character string Chaîne de

caractères str

Chaîne de caractères : un mot, une phrase…

S’écrit entre ‘ ‘ ou entre " " ou entre """ """.

Boolean Booléen bool Une variable booléenne est (⚠ Majuscule) :

soit égale à True (vrai) ; soit égale à False (faux).

A. Nombres :

Il existe 3 types de nombres en Python : int, float et complex.

1. Type int : nombres entiers.

2. Type float : nombres à virgule flottante.

3. Type complex : nombres complexes.

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 11 sur 23

B. Chaînes de caractères :

1. Type string character (str) :

Tout caractère utilisé dans Python provient de la table Unicode (voir cours sur Représentation de

l’Information) qui regroupe quasiment tous les caractères utilisés dans le Monde et qui à chaque caractère

fait correspondre son unique numéro dans la table (son point de code), nombre qui est alors encodé en

binaire par le procédé d’encodage Utf8.

2. Chaîne de caractères : définition.

Définition : Une chaîne de caractères est une liste constituée de caractères de type string (str).

Nous reviendrons au chapitre sur cette notion de chaîne de caractères vue en tant que liste ainsi que le

bénéfice en terme de fonctions et de méthodes qui en découle.

3. Trois façons d’afficher une chaîne de caractères :

Pour cela, nous allons utiliser la fonction print( ). Nous la reverrons en détail p.21 : instructions de sortie.

Manière Exemples : print(‘chaîne de caractères’)

résultat à l’écran Commentaires

Entre ‘apostrophes’

(single quotes en anglais)

print(‘Mes parents chéris,’)

Mes parents chéris, Impossible d’aller à la ligne dans print( ).

Entre "guillemets"

(double quotes en anglais)

print("je vous aime.")

je vous aime. Impossible d’aller à la ligne dans print( ).

Entre """triple guillemets"""

(triple double quotes en

anglais)

print("""Votre enfant qui pense à vous.""")

Votre enfant qui pense à vous.

• Tient compte des retours à la ligne.

• Marche aussi avec triple simple quotes.

4. Apostrophes ou guillemets à l’intérieur d’une chaîne de caractères :

Exécuter print('Chérie je t’aime.'). Que s’affiche-t-il ? ……………………………………………………….

Si une chaîne de caractères contient des guillemets ou des apostrophes, 4 solutions s’offrent à nous :

Manière Exemples : print(Chaîne de caractères) résultat à l’écran

Délimiter par des apostrophes une chaîne contenant

des guillemets (mais pas d’apostrophes).

print(‘Elle lui a dit : "Nan mais allo koi !". Lol.’)

Elle lui a dit : "Nan mais allo koi !". Lol.

Délimiter par des guillemets une chaîne contenant

des apostrophes (mais pas de guillemets).

print("C’est celui qui dit qui y est !")

C’est celui qui dit qui y est !

Délimiter par des triples guillemets une chaîne

contenant des apostrophes et/ou guillemets.

print("""Ce à quoi elle a rétorqué : « T’es qu’un pov type, sale caractère ! »""")

Ce à quoi elle a rétorqué : « T’es qu’un pov type, sale caractère ! »

Précéder chaque apostrophe ou chaque guillemet

par le caractère échappatoire antislash \ .

print(‘\’ Est-ce que tu m\’aimes encore ? \’ ’)

’ Est-ce que tu m’aimes encore ? ’

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 12 sur 23

5. Quelques rôles du caractère échappatoire antislash \ :

Syntaxe Exemples :

print(Chaîne de caractères) résultat à l’écran Commentaires

\’

\"

\\

print("Momo dit : \"Tu tires \\ tu pointes ?\" ")

Momo dit : "Tu tires \ tu pointes ?"

Permet d’écrire les caractères apostrophe,

guillemet, antislash lui-même dans une chaîne

de caractères sans provoquer de SyntaxError.

\n

print("Momo dit : \n \"Tu tires \\ tu pointes ?\" ")

Momo dit :

"Tu tires \ tu pointes ?"

Insère un retour à la ligne là où \n est placé.

Pas d’espace si la suite est collée à \n.

\t print("Momo dit : \t \"Tu tires \\ tu pointes ?\" ")

Momo dit : « Tu tires \ tu pointes ? »

Insère une tabulation là où \t est placé.

Pas d’espace en plus si la suite est collée à \t.

Il existe encore beaucoup de rôles pour l’antislash : voir https://python-course.eu/python3_variables.php.

6. Application :

Ces phrases vont-elles correctement s’afficher à l’écran ?

print (‘ j’aime mon prof. ’) print (‘ j’aime mon prof.) print (‘ j\’aime mon prof. ’)

print (" j\’aime mon prof.") print ("j’aime mon prof ")

C. Booléens :

Evidemment, il existe d’autres types de données plus complexes (list : liste, file : fichier etc.).

On pourra même créer les propres types complexes dont on aura besoin. Du sur-mesure !

Ai-je tout compris ? Types de données. ☺ ☺☺

Citer 4 types importants de variables ?

3 façons de délimiter une chaîne de caractères.

Afficher du texte contenant des apostrophes, guillemets ou des antislashs.

Utiliser l’antislash dans des chaînes de caractères.

Qu’est-ce qu’une variable booléenne ?

Valeurs d’une variable booléenne dans les calculs.

Maintenant qu’on a vu ce que sont les variables, comment agir entre valeurs/variables ?

C’est l’objet des opérateurs.

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 13 sur 23

VI. OPERATEURS, DELIMITEURS ET EXPRESSIONS.

Un opérateur permet d’agir entre 2 valeurs et/ou variables.

En combinant les opérateurs, on peut créer des expressions plus ou moins complexes selon les besoins.

Il faudra faire attention à l’ordre d’exécution des opérateurs. Les délimiteurs seront utiles pour bien faire

ressortir les priorités.

A. Opérateurs :

Les opérateurs correspondent à certaines opérations mathématiques et bien plus.

1. Définitions :

1. Un opérateur est un symbole (ou un mot réservé) utilisé pour effectuer une opération entre 2

opérandes.

2. Un opérande (masculin !) est soit une valeur, soit une variable, soit une expression.

3. Un couple de délimiteurs sont 2 symboles qui permettent d’encapsuler une expression.

4. Une expression est une suite valide d'opérateurs, de délimiteurs et d'opérandes.

Exemple : Soit l’expression ( nbsmacks + 1 ) * 2

1 couple de délimiteurs « ( ) » 2 opérateurs : « + » et « * » 3 opérandes : « nbsmacks », « 1 » et « 2 ».

2. Opérateurs mathématiques :

➢ Compléter les exemples du tableau suivant puis vérifier avec la console Python.

Symbole Nom Type des 2

opérandes

Exemples :

expression résultat Commentaires

** Puissance Int et/ou Float

4**2 ….

4**2.0 ….

Ecrire nba : ………..

Idem aux Maths.

On peut aussi utiliser pow(. , .).

Ex : pow (2 , 3) == 2**3.

* Multiplication

Int et/ou Float 2 * 5.0 10.0 Idem aux Maths.

Int et

Caractères (str)

3 * "ab" "ababab"

"Pi" * 2 ………..

Répétition de la séquence de

caractères.

/ Division

décimale Int et/ou Float

2 / 4 0.5

8 / 2 4.0

7 / 7 …..

Renvoie toujours un résultat de type

réel (float).

// Quotient Int et/ou Float

5 // 3 1

5.0 // 3 1.0

2 // 3 ……

4.1 // 3.1 …….

Renvoie la partie entière du quotient

(entier int quand tous les opérandes

sont int ; sinon entier float).

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 14 sur 23

Symbole Nom Type des 2

opérandes

Exemples :

expression résultat Commentaires

% Reste

(ou Modulo) Int et/ou Float

5 % 3 2

5.1 % 3 2.1

2 % 3 ……

4.1 % 2.1 …….

• Renvoie le reste (pas forcément

entier !) de la division pseudo-

euclidienne (entier int quand tous les

opérandes sont int ; sinon réel float).

• Très pratique pour faire une action

toutes les n fois en utilisant

l’expression « compteur % n ».

+ Addition

Int et/ou Float 2 + 3 5

2 + 3.0 ….. Idem aux Maths.

Str et Str "A" + "ne" …… Accolement ou Concaténation.

- Soustraction Int et/ou Float 2 - 3 -1

2 - 3.0 ….. Idem aux Maths.

➢ Remarques :

o On voit que les opérateurs + et * agissent différemment selon les types Nombres ou Caractères : on

parle alors de surcharge d’opérateur.

o Tous ces opérateurs mathématiques marchent aussi avec des booléens considérés alors comme des

entiers int : True valant l’entier ….. et False valant l’entier …..

Cela sera pratique pour par exemple évaluer quand est-ce que plusieurs conditions sont vraies

en même temps : il suffira d’additionner les conditions et voir combien on trouve.

o Et la racine carrée ? Ce n’est pas un opérateur qui assure ce calcul mais une fonction présente dans le

module math (à d’abord importer avec l’instruction « from math import * ») : la fonction sqrt ( ).

3. Opérateurs logiques ou opérateurs booléens :

Les expressions avec un opérateur logique renvoient toutes un booléen : soit .............., soit ..............

Mot réservé

Nom Type des opérandes Exemples :

expression résultat Commentaires

not NON logique 1 seul opérande

booléen

not (1 > 3) True

not (2 < 9) ……… Renvoie l’opposé booléen.

and ET logique Booléens

(1 > 0) and (1 > 2) ……..

(1 > 0) and (1 < 2) ……..

(1 < 0) and (1 > 2) ……..

(1 < 0) and (1 < 2) ……..

• Renvoie True seulement si les

2 opérandes sont vrais (V-V).

• Renvoie False dans les 3

autres cas (V-F, F-V, F-F).

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 15 sur 23

Mot réservé

Nom Type des opérandes Exemples :

expression résultat Commentaires

or OU logique Booléens

(1 > 0) or (1 > 2) ……..

(1 > 0) or (1 < 2) ……..

(1 < 0) or (1 > 2) ……..

(1 < 0) or (1 < 2) ……..

• Renvoie False seulement si

les 2 opérandes sont faux (F-F).

• Renvoie True dans les 3

autres cas (V-F, F-V, V-V).

4. Opérateurs de comparaison :

➢ Les expressions avec l’un des 8 opérateurs de comparaison posent toutes une question dont la

réponse est un booléen : soit True (.............), soit False (.............).

Les 2 opérandes doivent être en même temps du « même » type et ce type doit posséder une relation

d’ordre : nombres, caractères (par l’intermédiaire de leurs valeurs unicode), séquences etc.

Symbole (ou mot réservé)

Nom Type des 2

opérandes

Exemples :

expression résultat Commentaires

= = Egalité de valeur ? « même »

type

3 = = 1 + 2 ……..

1.0 = = 1 ……..

"1" = = 1 ……..

Compare 2 objets de « même » type

pour voir s’ils ont la même valeur.

!= Différents ?

« même »

type

3 != 1 + 2 ……..

1.0 != 1 ……..

"1" != 1 ……..

Contraire de ==.

A != B équivaut à not (A = = B).

<

< =

>

> =

Inférieur ?

Inférieur ou égal ?

Supérieur ?

Supérieur ou égal ?

« même »

type

1 < 0 ……..

‘c’ < = ‘h’ ……..

‘h’ > ‘B’ ……..

‘fdb’ > = ‘fde’ …….

• Ordre naturel des nombres.

• D’après la table Unicode, on a :

Ordre naturel des lettres.

MAJUSCULES < minuscules.

is

is not

Identiques ?

Non identiques ?

N’importe

quels types

1.0 + 0 is 1 ……..

1 + 2 is not 3 ……..

• Retourne True si A et B sont

exactement le même objet.

• A is not B équivaut à not (A is B).

• L’opérateur is est beaucoup plus

restrictif que l’opérateur = =.

• Ne génère jamais de TypeError.

➢ Remarque :

o Si les expressions comparées ne sont pas du « même » type, une TypeError est générée (sauf pour

l’opérateur is).

o On peut enchaîner les opérateurs de comparaison. Ex : a < b < c équivaut alors à (a < b) and (b < c).

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 16 sur 23

5. Quelques autres opérateurs :

o Opérateur d’appartenance :

Mot réservé

Nom Type de l’opérande Exemples :

expression résultat Commentaires

in

not in

Dans (pas

dans) la

séquence ?

Séquence

(list, tuple, range,

binaires, caractères)

‘py’ in ‘papy’ True

1 in [ 0 , ‘a’ , 1.0] True

‘k’ in [‘ko’, 1] ………

‘k’ not in [‘k’, 1] ………

• « k in Séquence » :

renvoie True si la valeur de k

est égale à la valeur de l’un

des items dans Séquence.

o Opérateurs binaires :

Il existe des opérateurs spécialisés dans le traitement des écritures binaires (écritures avec des 0 et des 1).

Voir le cours sur le codage binaire.

B. Priorité des opérateurs et délimiteurs dans les expressions :

➢ Dans une expression (une suite valide d’opérateurs et d’opérandes) les opérations se font rarement de

gauche à droite mais, comme en Mathématiques, selon des règles de ……………………………...

Ordre décroissant de priorité des opérateurs et délimiteurs (tableau non exhaustif)

Délimiteurs ou Opérateur Nom

( ) Délimiteurs Parenthèses.

** Puissance.

+k ; -k Positif ; Négatif.

* ; / ; // ; % Multiplication ; Division classique ; Quotient entier ; Reste.

+ ; Addition ; Soustraction.

< ; <= ; > ; >= ; != ; = = Comparaisons.

is ; is not Test d’identité.

in ; not in Test d’appartenance.

not NON booléen.

and ET booléen.

or OU booléen.

➢ Remarques :

o Les parenthèses sont le couple privilégié de délimiteurs qui permettent facilement :

de changer l’ordre des priorités.

de lever des ambiguïtés de priorité.

o Pour des opérateurs de même niveau de priorité, les opérations sont évaluées de gauche à droite.

➢ Application : Evaluer les expressions suivantes puis vérifier avec la console Python.

-(-5)**2 != 15 + 20 / 2 ……… 1 < 3 or 2 = = 1 + 2 and 1 > 0 + 2 ………

‘ta’ in ‘TaTa’ and not 1 > 3 ……… ‘Ab’ > ‘AC’ > ‘aC’ or‘ac’ != ‘AB’ ………

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 17 sur 23

Ai-je tout compris ? Opérateurs, expressions. ☺ ☺☺

Définitions d’un opérateur, d’un opérande, d’une expression.

Opérateurs mathématiques.

Opérateurs logiques.

Opérateurs de comparaison.

Evaluer une expression en respectant les priorités des opérateurs.

VII. STRUCTURES DE CONTROLE : INSTRUCTIONS.

A. Définitions : Instruction, Séquence d’instructions.

• Une instruction est un ordre unitaire qui doit être exécuter par la machine.

• Chaque instruction se présente dans le programme sous la forme d’une ligne écrite appelée ligne de code.

Chaque instruction s’écrit comme une combinaison d’expressions, d’opérateurs, de fonctions etc.

• Une suite de plusieurs instructions (une seule instruction par ligne) s’appelle une séquence d’instructions.

➢ Par analogie langagière :

Les valeurs, variables et expressions sont l’équivalent des sujets.

Les opérateurs, fonctions et méthodes sont l’équivalent des …………………..

L’ensemble des deux forment les instructions unitaires qui sont l’équivalent de ……………………...

Une suite d’instructions est l’équivalent d’un …………………………….

➢ Exemple :

Le programme (inintéressant) ci-avant est formé d’une seule séquence elle-même

constitué de …….. instructions.

La 1ère instruction est composée de la fonction ………….. qui agit sur l’expression …………………

La 2ème instruction est composée de l’opérateur …… qui agit entre les 2 opérandes ……. et ……

B. Présentation et syntaxe des instructions et séquences d’instructions :

Contrairement à d’autres langages qui délimitent syntaxiquement les instructions et blocs d’instructions,

Python le fait par la mise en page. D’où la clarté d’un programme écrit en Python !

Ce qui oblige à être rigoureux dans la présentation. Ce qui constitue une bonne habitude d’apprentissage 😉

1. Instructions séparées par retours à la ligne :

En langage C par exemple, les instructions sont séparées syntaxiquement par des « ; ».

En langage Python, les instructions sont séparées par un retour à la ligne seulement !

D’où obligatoirement une seule instruction par ligne (ce qui n’est pas obligatoire en C, mais conseillé !).

2. Indentation : définition.

• Indenter une ligne de code signifie décaler cette instruction vers la droite.

• En Python l’indentation réglementaire se fait de 4 espaces en 4 espaces (tabulation par tabulation).

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 18 sur 23

3. Instructions composées :

➢ Définition :

Les instructions composées sont les boucles, tests conditionnels et fonctions (voir cours plus loin).

➢ Structure d’une instruction composée :

Toutes les instructions composées ont toujours la même structure :

o une ligne d'en-tête terminée par « : ».

o suivie d'une ou de plusieurs instructions indentées au même

niveau sous cette ligne d'en-tête.

4. Blocs d’instructions ;

➢ Définition :

Un bloc d’instruction est une séquence d’instructions alignées sur la même

indentation.

Les blocs d'instructions sont créés par les instructions composées.

➢ Organisation des blocs :

Comme les instructions composées peuvent encore se composer entre elles,

il y a souvent plusieurs blocs indentés à plusieurs niveaux.

Toutes les instructions d’un bloc doivent être indentées exactement au

même niveau : pas un espace en plus ou en moins sinon IdentationError !

5. Quels espaces et tabulations sont ignorés à l’exécution ?

A part ceux qui servent à l'indentation ou ceux à l’intérieur d'une chaîne de caractères, les espaces et

tabulations placés à l'intérieur des instructions sont ignorés à l’exécution (tout comme les commentaires).

6. Exercice :

Indiquer toutes les erreurs d’indentation et de syntaxe dans le schéma suivant (points = espaces) :

Ai-je tout compris ? Instructions. ☺ ☺☺

Définitions Instructions, Séquence d’instructions, Bloc d’instructions.

Définition Indentation.

Je comprends la structure en blocs de lignes de code.

Corriger les erreurs d’indentation et de syntaxe des instructions composées.

….Instruction1

En-tête 1 :

….Instruction bloc1

……..Instruction bloc1

……..En-tête 2

…………Instruction bloc2

……….Instruction bloc2

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 19 sur 23

VIII. INSTRUCTIONS DE BASE.

Voyons maintenant quelques instructions simples mais incontournables en algorithmique-programmation.

A. Affectation d’une valeur à une variable :

La toute première instruction utile est de remplir avec une valeur la petite boîte représentant la variable.

1. Définition de l’affectation :

• L’affectation de valeur à une variable est l’instruction basique qui permet d’attribuer une valeur à

une variable.

• En langage Python, cette assignation s’effectue avec l’opérateur d’affectation « = », selon la syntaxe :

nom_de_variable = expression à évaluer

➢ Remarques :

o On dit aussi par abus de langage « affectation de variable » ou « assignation de variable ».

o L’expression à évaluer (à calculer) à droite du signe = peut être juste une simple valeur comme une

expression très complexe combinant calculs, valeurs retournées par d’autres variables ou fonctions...

2. Exemples :

o L’instruction nbbisous = 3 + 2 signifie que la case mémoire représentant la variable appelée nbbisous

va contenir la valeur de l’expression 3 + 2 c-à-d 5.

o Pour affecter un texte, on l’écrit soit entre "guillemets", soit entre ‘apostrophes’ :

Exemple : matierepreferee= "Maths".

o Affectation parallèle : a , n = 2.5 , "bleu" donnera la même chose que a = 2.5 et n = "bleu".

3. Ne pas confondre affectation et égalité mathématique :

➢ Attention, l’opérateur « = » n’a donc pas le même sens en Python qu’en Mathématiques !

Cela provoque de nombreuses incompréhensions de la part des apprenants débutants.

➢ Exemple :

ne se traduit pas par

En effet, il y a d’abord évaluation par la droite de l’expression x + 2. Le résultat 27 de cette évaluation est

alors « versé » dans la variable x. Quelle est la valeur contenue alors par x ? …………...

➢ Il y a donc une double difficulté syntaxique dans l’affectation de variable :

1. Le signe « = » représente en fait une flèche d’attribution de la droite vers la gauche : .

D’ailleurs, en algorithmique, le schéma d’affectation s’écrit : variable expression à évaluer.

2. La lettre « x » peut représenter 2 choses différentes dans une même instruction d’affectation !

A droite du signe =, x représente la ………………………. de la variable x en tant que contenu.

A gauche du signe =, x représente la variable x en tant que contenant.

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 20 sur 23

4. Exercices sur l’affectation :

Pour les 4 petits programmes (scripts) suivants, que s’affiche-t-il à l’écran ?

Note : L’instruction print (‘a = ‘, a, ‘et b = ‘, b) affiche sur une même ligne de l’écran le texte « a = » suivi de

la valeur de la variable a puis le texte « et b = » suivi de la valeur de la variable b.

Vérifier en recopiant chaque script dans votre IDE (ex : Thonny) ou sur le site pythontutor.com.

❖ Ecrire un script qui permute les valeurs de 2 variables a et b.

5. Initialisation d’une variable :

➢ Lorsqu’une variable est déclarée, une zone mémoire est réservée et nommée.

Mais que contient alors cette zone ? Ce peut être rien comme ce peut être aussi hélas ................................... !

Comme la variable peut contenir au départ rien ou n’importe quoi, il faut lui assigner une valeur de départ :

on appelle cette instruction « initialiser la variable ».

Définition :

L’initialisation d’une variable est un cas particulier de l’affectation d’une variable.

C’est la toute première affectation de cette variable.

➢ Comme déjà dit plus haut, il n’y a pas dans un programme python une partie explicite Déclaration-

Initialisation des variables comme en langage C ou dans Algobox. En Python, la déclaration et le typage se

font au moment de l’initialisation de manière dynamique.

Cela constitue une force et en même temps une faiblesse de Python : concision dans l’écriture du

programme mais moindre rigueur.

Exemple : Taper le script suivant dans votre IDE (Thonny par exemple) ou sur Pythontutor, puis exécuter.

Il s’affiche : « NameError: name 'c' is not defined ».

Expliquer.

➢ Attention, si on oublie d’initialiser une variable, le programme pourrait très bien fonctionner (pas

d’erreur de syntaxe) mais il pourrait fournir des résultats complètement inattendus.

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 21 sur 23

Un programme ne peut se contenter de manipuler des variables ! Il faut qu’il puisse être en interaction avec

ses utilisateurs, l’environnement ou d’autres programmes etc. Soit en recevant des données, on parle alors

d’entrée (de données). Soit en renvoyant des données, on parle alors de sortie (de données).

L’une des premières nécessités quand on programme est de pouvoir afficher des trucs à l’écran.

B. Instruction de sortie print ( ) :

1. Hello world !

La tradition veut que le tout premier programme de tout apprenti programmeur affiche « Hello world ! ».

L’instruction à écrire est : print (‘Hello world !’)

Cette instruction est constituée de la fonction ………………….. et de la chaîne de caractères …………….

2. La fonction print( ) :

➢ Nous avons déjà vu la fonction print( ) lors de l’étude des chaînes de caractères p.11.

• L’instruction de sortie print( ) permet à l’utilisateur d’afficher à l’écran une chaîne de caractères.

• Syntaxe complète :

print( "valeur1", "valeur2","..." , sep=' ', end=' ‘', file=’ ‘ )

"valeur1", "valeur2", "..." sont des chaînes de caractères ou des variables de type caractère (str).

sep=' ', end=' ‘, file=’ ‘ sont 3 paramètres facultatifs pour changer le comportement par défaut.

• Comportement par défaut sans paramètres :

print( "valeur1", "valeur2","..." ) "valeur1" "valeur2" "…"

concaténation des valeurs, séparation par un espace, retour à la ligne en fin d’instruction.

➢ Exemple d’un print() sans paramètres :

Je t'aime à la folie Poulette .

Pour régler les problèmes d’espace ou de terminaison, on peut utiliser les paramètres.

➢ Utilisation des paramètres optionnels :

Paramètre Nom Exemples :

expression résultat Commentaires

sep Séparateur • print(‘ab’,’cd’,’ef’,sep=’k,’) abk,cdk,ef

• print(‘ab’,’cd’,’ef’,sep=’’) abcdef

• Les caractères séparateurs

remplacent les espaces par défaut.

• Si sep= vide, il y a accolement.

end Terminaison • print(‘ab’,’cd’,’ef’,end=’k,’) ab cd efk,

• print(‘ab’,’cd’,’ef’,end=’’) ab cd ef

• La terminaison remplace le retour

à la ligne par défaut.

• Si end= vide, pas de retour ligne.

file Sortie

fh = open("data.txt","w")

print(‘ab’,’cd’,’ef’,file=fh)

fh.close( )

File= change la sortie standard qui

est l’écran en général.

Ici, impression dans le fichier fh.

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 22 sur 23

➢ Exercice : Ecrire une instruction utilisant la seule fonction print( ) qui affichera :

Affichage Terminaison Instruction (vérifier à la console)

a . b . c . d Pas de retour ligne

1’2’3 Une tabulation

1

2

3

Pas de retour ligne après le 3.

3. Formatage de la sortie print ( ) avec la méthode .format :

Trop de choses à dire : voir https://python-course.eu/python3_formatted_output.php

Il existe évidemment d’autres instructions de sortie : par exemple pour enregistrer des données dans un

fichier (voir chapitre fichier) ou une base de données, pour renvoyer des données vers des capteurs, etc.

C. Instruction d’entrée input ( ) :

➢ Prenons l’exemple d’une variable nbbisous qu’on veut initialiser dès le début d’un programme :

o On peut l’initialiser à l’intérieur même du programme par nbbisous = 5.

L’inconvénient est que la valeur de départ de nbisous sera figée. Et seuls ceux qui ont accès au corps du

programme (concepteurs, programmeurs etc.) peuvent la changer en rééditant le programme.

o On peut l’initialiser à l’extérieur du programme.

Cette fois-ci, n’importe quel utilisateur du programme peut entrer le nombre de bisous qui lui correspond !

• L’instruction d’entrée input( ) permet à l’utilisateur d’entrer au clavier une donnée.

• Syntaxe : variable = type (input())

Quand le type est omis, l’entrée est nécessairement de type caractère (str).

➢ Exemples :

x = int (input()) donnée entrée au clavier de type .................................., rangée dans la variable ....

p = float (input()) donnée entrée au clavier de type .................................., rangée dans ......

aux = input() donnée entrée au clavier de type .................................., rangée dans ........................

nbor = int(input(‘Entrer le nombre de pièces d\’or : ’)) donnée de type ..................., rangée dans ............,

précédée de la phrase introductrice ................................................................................

➢ Application : Ecrire les instructions d’entrée au clavier avec les paramètres suivants.

Phrase introductrice Type Variable Instruction

Personne préférée : caractère pers

Nb d’amours ? entier nbamours

Tu m’adores ? booléen rep

Cours de Mr JULES v2.0 Classe de Terminale S spécialité ISN Contrat 1 Page 23 sur 23

➢ Exercice sur entrée-sortie : Ecrire un petit programme qui en entrée demande si tu m’aimes et qui réagit

en sortie en fonction de la réponse tapée.

Il existe évidemment d’autres instructions d’entrées : par exemple pour lire des données dans un fichier

(voir chapitre fichier) ou dans une base de données, ou pour collecter des données depuis des capteurs, etc.

Ai-je tout compris ? Instructions de base. ☺ ☺☺

Qu’est-ce que l’affectation de variable ?

Pourquoi faut-il initialiser les variables ?

Script qui échange les 2 valeurs de 2 variables ?

Fonction print( ) : comportement par défaut.

Utiliser les paramètres optionnels de la fonction print( )

Fonction input( ) : comportement par défaut.

Ecrire une instruction d’entrée avec un texte introducteur.