© SUPINFO International University – http://www.supinfo.com
Premiers pas.
1ADS Algorithm in Python
© SUPINFO International University – http://www.supinfo.com
Objectifs de ce module
• Introduire les notions d’algorithmes et de
programmes informatiques.
• Présenter plus particulièrement le langage
Python et deux de ses environnements de
développement.
• Effectuer ses premières manipulations de
variables.
Premiers pas.
© SUPINFO International University – http://www.supinfo.com
Plan de ce module
1. Généralités sur l’algorithmique et la
programmation.
2. Prise en main de l’environnement de
développement.
3. Notion de variables.
4. Opérations sur les variables.
5. Structures de contrôle.
Premiers pas.
© SUPINFO International University – http://www.supinfo.com
1. Généralités sur l’algorithmique et
la programmation.
Premiers pas.
© SUPINFO International University – http://www.supinfo.com
Plan de ce chapitre
a. Autour de la notion d’algorithme.
b. De l’algorithme au programme.
c. Pourquoi le choix du Python pour débuter ?
d. Quelle version de Python ?
1. Généralités sur l’algorithmique et la programmation.
© SUPINFO International University – http://www.supinfo.com
a. Autour de la notion d’algorithme.
• Un algorithme est une suite d’instructions permettant la
résolution d’un problème en un nombre fini d’étapes.
• À partir de données, les entrées de l’algorithme, on va
donc parvenir à un résultat, la sortie.
• Il est important de noter que les instructions d’un
algorithme doivent être indépendantes des données sur
lesquelles il va s’appliquer.
1. Généralités sur l’algorithmique et la programmation.
© SUPINFO International University – http://www.supinfo.com
a. Autour de la notion d’algorithme.
Exemple : recette de cuisine.
• Problème : comment faire une pâte à crêpes ?
• Résolution :
① Casser trois œufs dans 250 grammes de farine.
② Mélanger.
③ Diluer avec ½ litre de lait.
④ Ajouter une cuillère à soupe d’huile.
1. Généralités sur l’algorithmique et la programmation.
© SUPINFO International University – http://www.supinfo.com
a. Autour de la notion d’algorithme.
Origine du mot algorithme
• Le mot algorithme vient du nom du mathématicien perse
Abu Abdullah Muhammad ibn Musa al-Khwarizmi (9 ème
siècle après Jésus Christ).
• Son nom a ensuite été latinisé au Moyen Age en
« algoritmi » .
• Origine du mot algorithme ne veut pas dire origine du
principe. On écrivait des algorithmes dès l’antiquité
comme nous allons le voir sur des exemples.
1. Généralités sur l’algorithmique et la programmation.
© SUPINFO International University – http://www.supinfo.com
a. Autour de la notion d’algorithme.
Algorithme de calculs d’intérêts (1800 avant J.-C.)
•Problème : trouver en combien d’années on double un
montant soumis à un certain taux annuel.
•Résolution :
① Initialiser le taux t à la valeur voulue, a à 0 et b à 1
② Tant que b < 2, remplacer b par b*(1+t) et ajouter 1 à a.
③ La valeur finale de a est le nombre d’années cherché.
1. Généralités sur l’algorithmique et la programmation.
© SUPINFO International University – http://www.supinfo.com
a. Autour de la notion d’algorithme.
Exemple (pour un taux de 20%) et photo du manuscrit :
1. Généralités sur l’algorithmique et la programmation.
a b
0 1
1 1,2
2 1,44
3 1,728
4 2,0736
Il faut 4 ans
© SUPINFO International University – http://www.supinfo.com
a. Autour de la notion d’algorithme.
Algorithme de multiplication égyptienne (1650 avant J.-C.)
•Problème : multiplier deux entiers a et b.
•Résolution :
① Décomposer a comme somme de puissances de 2.
② Calculer les puissances de 2, 4, 8, etc. de b.
③ Additionner les puissances de b qui correspondent aux
puissances de 2 trouvées dans a.
1. Généralités sur l’algorithmique et la programmation.
© SUPINFO International University – http://www.supinfo.com
a. Autour de la notion d’algorithme.
Exemple et photo du manuscrit :
1. Généralités sur l’algorithmique et la programmation.
2n
a = 25 b = 14
1 1 14
2 0 28
4 0 56
8 1 112
16 1 224
a * b = 14 + 112 + 224 = 350
© SUPINFO International University – http://www.supinfo.com
a. Autour de la notion d’algorithme.
Algorithme d’Euclide (300 avant J.-C.)
• Problème : trouver le PGCD de deux entiers a et b.
• Résolution :
① Si b est non nul, diviser a par b. On note r le reste de cette
division euclidienne.
② Remplacer a par b et b par r.
③ Recommencer tant que cela est possible à partir de
l’étape 1.
④ Le PGCD est alors la dernière valeur non nulle de r.
1. Généralités sur l’algorithmique et la programmation.
© SUPINFO International University – http://www.supinfo.com
a. Autour de la notion d’algorithme.
Exemple et photo du manuscrit :
1. Généralités sur l’algorithmique et la programmation.
a b r
142 38 28
38 28 10
28 10 8
10 8 2
8 2 0
PGCD(142,38) = 2
© SUPINFO International University – http://www.supinfo.com
Définition d’un algorithme
•C’est une suite finie d’instructions, qu’on applique à un
nombre fini de données, dans un ordre bien déterminé pour
résoudre un problème donné.
Autre définition
•Un algorithme est la description de la méthode de
résolution d’un problème posé.
L’algorithmique :
•L’algorithmique est la science qui étudie l’application des
algorithmes à l’informatique
© SUPINFO International University – http://www.supinfo.com
Construction d’un algorithme:
Définition:
Construire un algorithme consiste à concevoir les
actions qu'il faut organiser dans le temps, et à choisir la
manière de les organiser pour obtenir le résultat
escompté par leurs effets cumulés.
1. Généralités sur l’algorithmique et la programmation.
© SUPINFO International University – http://www.supinfo.com
Étapes de construction d’un algorithme
• Position du problème et précision des conditions de travail:
Objets caractérisant les informations ou les données à
manipuler.
• Réfléchir à une méthode bien définie pour résoudre le
problème.
• Décrire cette méthode sans ambiguïté.
• Évaluer la méthode décrite (temps d’exécution, nombre
d’opérations, taille, etc..).
• Réfléchir aux qualités et aux défauts de la méthode choisie.
• Réfléchir à d’autres méthodes et les comparer selon les
critères de qualité définis.
1. Généralités sur l’algorithmique et la programmation.
a. Autour de la notion d’algorithme.
© SUPINFO International University – http://www.supinfo.com
b. De l’algorithme au programme.
• En informatique, les instructions d’un algorithme seront
bien sûr à destination d’un ordinateur.
• Pour qu’elles soient compréhensibles par ce dernier, elles
doivent évidemment être écrites dans ce que l’on appelle
un langage de programmation.
• Celui-ci sera lui même traduit par un compilateur en
langage machine ou exécuté par un interpréteur.
1. Généralités sur l’algorithmique et la programmation.
© SUPINFO International University – http://www.supinfo.com
b. De l’algorithme au programme.
• Avant l’étape d’écriture du programme, on peut/doit
concevoir l’algorithme en lui même de façon non formelle,
en version « papier ».
• L’algorithme contient la réflexion, l’abstraction du
programme.
• Ce dernier pouvant être complexifié par des contraintes
techniques.
1. Généralités sur l’algorithmique et la programmation.
Problème Algorithme Programme
© SUPINFO International University – http://www.supinfo.com
b. De l’algorithme au programme.
1. Généralités sur l’algorithmique et la programmation.
© SUPINFO International University – http://www.supinfo.com
b. De l’algorithme au programme.
• Nous n’adopterons pas dans ce cours de syntaxe
formalisée des algorithmes, chacun les rédigera pour lui-
même dans l’unique but de structurer ses idées.
• On peut même tout à fait imaginer faire des schémas en
guise d’algorithme.
1. Généralités sur l’algorithmique et la programmation.
© SUPINFO International University – http://www.supinfo.com
b. De l’algorithme au programme.
Exemple : l’algorithme de calculs d’intérêts du slide 9
deviendra le programme suivant en Python
1. Généralités sur l’algorithmique et la programmation.
t = 0.2
a, b = 0, 1
while b < 2:
b = b*(1+t)
a = a + 1
print("Nombre d'années cherché :",a)
© SUPINFO International University – http://www.supinfo.com
c. Pourquoi le choix du Python ?
• Il possède une syntaxe simple.
• On peut donc se concentrer sur la logique algorithmique.
• Le mode “console” permet de tester des portions de codes
immédiatement.
• C’est un langage interprété, c’est-à-dire que les
instructions des programmes seront exécutées au fur et à
mesure.
1. Généralités sur l’algorithmique et la programmation.
© SUPINFO International University – http://www.supinfo.com
c. Pourquoi le choix du Python ?
• C’est un langage de haut niveau, on ne souciera pas de la
gestion des ressources mémoires.
• Python possède des structures de données évoluées,
listes, ensembles, dictionnaires, etc.
• Python est de plus en plus populaire et possède de
nombreuses ressources bibliographiques.
• Enfin, c’est un langage open source.
1. Généralités sur l’algorithmique et la programmation.
© SUPINFO International University – http://www.supinfo.com
d. Quelle version de Python ?
• Il y a principalement deux “branches” différentes de
Python : 2.x et 3.x
• Même si elles sont assez semblables dans l’esprit, on peut
noter d’importantes différences de syntaxes,
fonctionnalités, etc.
• Ce cours est basé sur la branche 3.x, et plus
particulièrement sur la version 3.3.5
1. Généralités sur l’algorithmique et la programmation.
© SUPINFO International University – http://www.supinfo.com
Fin de ce chapitre
Avez – vous des questions ?
1. Généralités sur l’algorithmique et la programmation.
© SUPINFO International University – http://www.supinfo.com
2. Prise en main de l’environnement
de développement.
Premiers pas.
© SUPINFO International University – http://www.supinfo.com
Plan de ce chapitre
2. Prise en main de l’environnement de développement.
a. Téléchargement de IDLE et PyCharm.
b. Utilisation de la console.
c. Écriture de scripts.
© SUPINFO International University – http://www.supinfo.com
3. NOTION DE VARIABLES.
Premiers pas.
© SUPINFO International University – http://www.supinfo.com
Plan de ce chapitre
4. Notions de variables.
a.Constantes
b.Variables.
c.Les types de variables.
d.Affectation de variables.
e.Spécificités du Python.
f.Conversions de types.
g.Affichage et saisie.
© SUPINFO International University – http://www.supinfo.com
a.Constantes
Définition : Les constantes sont des quantités fixées et
invariantes au cours de l’algorithme.
• Déclaration d’une constante : Instruction permettant de
réserver de l’espace mémoire pour stocker des données dont
la valeur est fixée pour tout l’algorithme.
Exemple :
constantes MAX=100
e = 2.72
3. Notions de variables.
© SUPINFO International University – http://www.supinfo.com
b. Variables.
• Dans un algorithme (ou programme informatique), le
stockage des informations est primordial.
Ces informations sont essentiellement :
• Les données fournies par l’utilisateur (les entrées);
• Les résultats obtenus par l’algorithme (les sorties);
• Les données intermédiaires.
• Un algorithme ou un programme manipulent des données.
Certaines sont connues dès le départ, d’autres sont
calculées lors de son exécution.
• Pour pouvoir manipuler ces données il faut garder leurs
valeurs en mémoire. C’est le rôle des variables.
3. Notions de variables.
© SUPINFO International University – http://www.supinfo.com
b. Variables.
Variable :
• Nom désignant une donnée (nombre, texte…) susceptible
de changer de valeur.
• Une variable possède un type, ce qui permet à l’ordinateur
de savoir quelles valeurs elle peut prendre et quelles
opérations on peut effectuer avec.
3. Notions de variables.
© SUPINFO International University – http://www.supinfo.com
c. Les types de variables.
Les différents types utilisés :
• Type Entier : pour manipuler les nombres entiers positifs ou
négatifs. Par exemple : 25, -15, etc.
• Type Réel : pour manipuler les nombres à virgule. Par
exemple : 3.14, -15.5, etc.
• Type Caractère : pour manipuler des caractères alphabétiques
et numériques. Par exemple :
'a', 'A', 'z', ' ?', '1', '2' etc.
• Type Chaîne : pour manipuler des chaînes de caractères
permettant de représenter des mots ou des phrases.
• Type Booléen : pour les expressions logiques. Il n'y a que deux
valeurs booléennes : vrai et faux
3. Notions de variables.
© SUPINFO International University – http://www.supinfo.com
c. Les types de variables.
Types “élémentaires” en Python :
•int : nombres entiers.
•float : nombres décimaux.
•complex : nombres complexes.
•bool : booléens (deux valeurs possibles “True” et “False”).
•str : chaînes de caractères.
3. Notions de variables.
© SUPINFO International University – http://www.supinfo.com
d. Affectation
C’est une instruction qui consiste à doter une variable d’une
valeur appartenant à son domaine, c’est-à-dire à lui donner
une première valeur ou à changer sa valeur courante. Elle se
réalise au moyen de l’opérateur
Syntaxe :
Nom_variable ← Valeur
Nom_variable ← Nom_variable
Exemple :
x ← 4 signifie:
- mettre la valeur 4 dans la case mémoire identifiée par x (on dit aussi x reçoit 4).
- copier dans x la valeur 4
4. Opérations sur les variables.
© SUPINFO International University – http://www.supinfo.com
d. Affectation de variables (python).
• Syntaxe : affectation simple
• Syntaxe : affectation multiple
3. Notions de variables.
maVariable = valeur
var1, var2, ... = val1, val2, ...
© SUPINFO International University – http://www.supinfo.com
d. Affectation de variables.
Remarques :
•Comme mentionné précédemment, lorsque l’on veut utiliser
une variable il n’y a donc pas besoin de déclarer son type.
C’est lors de son initialisation que ce typage s’effectue.
•On peut toujours vérifier le type d’une variable avec
l’instruction “type” :
3. Notions de variables.
type(maVariable)
© SUPINFO International University – http://www.supinfo.com
d. Affectation de variables.
Exemple :
3. Notions de variables.
>>> i = 4
>>> type(i)
<class 'int'>
>>> x, z = -5.3, 1+1j
>>> z
(1+1j)
>>> type(z)
<class 'complex'>
>>> type(x)
<class 'float'>
© SUPINFO International University – http://www.supinfo.com
d. Affectation de variables.
3. Notions de variables.
>>> texte = 'Street fighting man'
>>> type(texte)
<class 'str'>
>>> texte
'Street fighting man’
>>> '666’ + 111
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: Can't convert 'int' object to str
implicitly
Exemple :
© SUPINFO International University – http://www.supinfo.com
e. Spécificités du Python.
Typage dynamique :
•Avant d’utiliser une variable on n’a pas besoin de déclarer
explicitement son type, c’est l’interpréteur qui s’en charge.
•Cela sera fait dès que l’on attribuera une valeur à notre
variable.
3. Notions de variables.
© SUPINFO International University – http://www.supinfo.com
e. Spécificités du Python.
Typage fort :
•Les opérations possibles sur une variable dépendent
intégralement de son type.
•Les conversions de types implicites afin de réaliser certaines
opérations sont donc interdites.
3. Notions de variables.
© SUPINFO International University – http://www.supinfo.com
f. Conversions de types.
Opérations de conversions :
3. Notions de variables.
Opération Contrainte / Résultat
int(x) x est un décimal (qui sera tronqué) ou une chaîne
int(x,base) x est une chaîne et base un entier
float(x) x est un entier ou une chaîne
complex(x,y) x et y sont des nombres ou x est une chaîne
bool(x) x est un nombre ou un booléen
Vaut False uniquement si x vaut 0 ou ‘ ‘
str(x) x est un nombre ou un booléen
eval(x) x est une chaîne qui est évaluée comme une
expression Python
© SUPINFO International University – http://www.supinfo.com
f. Conversions de types.
Exemple :
3. Notions de variables.
>>> x = 666.6
>>> y = int(x)
>>> y
666
>>> eval('y+111')
777
>>> int('10101',2)
21
>>> str(y)
'666'
© SUPINFO International University – http://www.supinfo.com
g. Instructions d’entrée/sorties
(lecture/écriture)
Lecture (saisie)
L’instruction ’’lire’’ permet de lire une ou plusieurs variables :
l’utilisateur doit saisir une ou plusieurs valeurs au clavier et
valider par la touche ‘’Entrée’’.
Syntaxe : lire(variable1, variable2,…)
Exemples :
lire (Nom) ; lire(A); lire(X, Y)
Recommandation : Il est souhaitable que toute instruction de
lecture d’une variable sera précédée par l’affichage d’un
message qui invite l’utilisateur à saisir une variable
4. Opérations sur les variables.
© SUPINFO International University – http://www.supinfo.com
g. Instructions d’entrée/sorties
(lecture/écriture)
L’écriture (sortie)
L’instruction ’’Écrire (ou afficher)’’ permet d’écrire à l’écran
(console) les valeurs des variables et les messages.
Syntaxe : Écrire (variable1, variable2,…)
Écrire (‘message’)
Exemples :
Écrire (‘Bonjour, la séance des TDs commence à 08h.’)
Cette instruction affichera à l’écran le message : Bonjour, la
séance des TDs commence à 08h.
Écrire(X): Cette instruction affichera la valeur de la variable X
4. Opérations sur les variables.
© SUPINFO International University – http://www.supinfo.com
g. Affichage et saisie (Python).
• En mode “console” on peut afficher le contenu d’une
variable en tapant juste son nom (voir exemples
précédents).
• Pour réaliser un affichage sur la console à partir d’un
script, et/ou pour réaliser des affichages plus sophistiqués
on aura besoin de l’instruction “print”.
3. Notions de variables.
© SUPINFO International University – http://www.supinfo.com
g. Affichage et saisie.
Syntaxe de la fonction “print” :
•Les différentes expressions (en nombre variables) sont soit
des chaînes, soit des résultats de calculs convertis en chaînes,
soit des variables dont on souhaite afficher la valeur.
3. Notions de variables.
print(expr_1,expr_2,...,sep=‘ ‘,end=‘n’)
© SUPINFO International University – http://www.supinfo.com
g. Affichage et saisie.
Syntaxe de la fonction “print” : (suite)
•“sep” indique ce qui va séparer ces expressions, par défaut il
s’agit d’un espace.
•“end” indique ce qui sera affiché après toutes les
expressions, par défaut il s’agit d’un retour à ligne.
3. Notions de variables.
© SUPINFO International University – http://www.supinfo.com
g. Affichage et saisie.
Exemple :
3. Notions de variables.
>>> age = 30
>>> print("J'ai",age,"ans et dans deux ans
j'aurais",age+2,"ans")
J'ai 30 ans et dans deux ans j'aurais 32 ans
© SUPINFO International University – http://www.supinfo.com
g. Affichage et saisie.
Exemple : (suite)
3. Notions de variables.
print("des","traits","bas","pour","séparer",
sep='_')
print("et","des","plus","à","la","suite",
sep='_',end='+++ ')
print("et la fin")
© SUPINFO International University – http://www.supinfo.com
g. Affichage et saisie.
Remarque
•Tabulation et retour à la ligne s’obtiennent avec ‘t’ et ‘n’ :
3. Notions de variables.
>>> print("The tRolling Stones")
The Rolling Stones
>>> print("The RollingnStones")
The Rolling
Stones
© SUPINFO International University – http://www.supinfo.com
g. Affichage et saisie.
Syntaxe de la fonction “input” :
•“expression” est facultative, elle sert juste à réaliser un
affichage sur la ligne de la saisie.
•Ce que va saisir l’utilisateur sera affecté sous forme de
chaîne de caractère à la variable “var”.
3. Notions de variables.
var = input(expression)
© SUPINFO International University – http://www.supinfo.com
g. Affichage et saisie.
Exemple :
3. Notions de variables.
>>> a = input()
>? 12
>>> print(a,type(a))
12 <class 'str'>
>>> b = eval(input("saisir un nombre : "))
saisir un nombre : >? 12
>>> print(b,type(b))
12 <class 'int'>
© SUPINFO International University – http://www.supinfo.com
Fin de ce chapitre
Avez – vous des questions ?
3. Notions de variables.
© SUPINFO International University – http://www.supinfo.com
4. Opérations sur
les variables.
Premiers pas.
© SUPINFO International University – http://www.supinfo.com
Plan de ce chapitre
4. Opérations sur les variables.
a. Opérateurs
b. Opérations arithmétiques.
c. Opérations sur les chaînes.
© SUPINFO International University – http://www.supinfo.com
a. Opérateurs
.
Un opérateur est un symbole significatif qui relie deux objets
(variables ou constantes), pour produire un résultat. Les
opérateurs sont classés comme suit :
• Opérateurs arithmétiques : Ce sont des opérateurs qui
opèrent sur les objets numériques (+, -, *, /, div, mod). On
note que ‘’div’’ est la division entière qui donne la partie
entière du quotient d’une division, et le mod (le modulo)
donne le reste d’une division entière.
• Opérateurs Logiques : Ce sont des opérateurs qui opèrent
sur les booléens (ET, OU,NON,…).
• Opérateurs de comparaison : Ce sont des opérateurs qui
opèrent sur les types numériques (=, < >, <, >, <=, >=)
4. Opérations sur les variables.
© SUPINFO International University – http://www.supinfo.com
a. Opérateurs
.
4. Opérations sur les variables.
© SUPINFO International University – http://www.supinfo.com
a. Opérateurs
• Instruction : Elle traduit une ou plusieurs consignes (ou
actions) portant sur une ou plusieurs variables.
• Expression : C’est une combinaison de variables, de
constantes et d'opérateurs. Le type d’une expression est
défini par celui des variables et des constantes qui la
constituent.
Exemples : (x+y)*(x-y)/2; a div b; (x>=0) ET (y>=0)
4. Opérations sur les variables.
© SUPINFO International University – http://www.supinfo.com
a. Opérateurs
• Incrémentation : C’est l’augmentation de la valeur d’une
variable à chaque phase de l’exécution d’un programme
(algorithme).
• Décrémentation : C’est la diminution de la valeur d’une
variable à chaque phase de l’exécution d’un programme
(algorithme).
Syntaxe :
x ← x+step où ‘’step’’ est le pas d’incrémentation (ou de
décrémentation).
4. Opérations sur les variables.
© SUPINFO International University – http://www.supinfo.com
Instruction, expression, affectation,
incrémentation
Écrire un algorithme permettant d’échanger le contenu de
deux variables.
4. Opérations sur les variables.
© SUPINFO International University – http://www.supinfo.com
b. Opérations arithmétiques (Python).
Liste des principales opérations arithmétiques :
4. Opérations sur les variables.
Opération Résultat
x + y Addition de x et y
x - y Soustraction de y à x
x * y Multiplication de x et y
x ** y Élévation de x à la puissance y
x / y Quotient réel de x par y
x // y Quotient entier de x par y
x % y Reste du quotient entier de x par y
© SUPINFO International University – http://www.supinfo.com
b. Opérations arithmétiques.
Précisions :
•Si les deux opérandes des opérations +, -, *, ** sont entiers
(resp. réels) le résultat est entier (resp. réel).
•Si un des deux opérandes est réel, le résultat est réel.
•Le résultat de l’opération / est toujours un réel.
4. Opérations sur les variables.
© SUPINFO International University – http://www.supinfo.com
b. Opérations arithmétiques.
Précisions : (suite)
•Si les deux opérandes sont des entiers, le résultat de
l’opération // est le quotient de la division euclidienne et le
résultat de l’opération % le reste.
•Si l’un des deux opérandes est un réel, le résultat de
l’opération // est la partie entière du quotient de la division
réelle.
4. Opérations sur les variables.
© SUPINFO International University – http://www.supinfo.com
b. Opérations arithmétiques.
Exemple :
4. Opérations sur les variables.
>>> -3 + 5
2
>>> 3 * 5
15
>>> 5 ** 2
25
>>> 13 / 4
3.25
© SUPINFO International University – http://www.supinfo.com
b. Opérations arithmétiques.
Exemple : (suite)
4. Opérations sur les variables.
>>> 13 // 4
3
>>> 13 % 4
1
>>> 13 // 4.6
2.0
>>> 13 % 4.6
3.8000000000000007
© SUPINFO International University – http://www.supinfo.com
a. Opérations arithmétiques.
Quelques raccourcis :
4. Opérations sur les variables.
Opération Résultat
x += y x = x + y
x -= y x = x - y
x *= y x = x * y
x **= y x = x ** y
x /= y x = x / y
x //= y x = x // y
x %= y x = x % y
© SUPINFO International University – http://www.supinfo.com
b. Opérations arithmétiques.
Exemple :
4. Opérations sur les variables.
>>> x = 25
>>> y = 0.5
>>> x **= y
>>> print(x)
5.0
>>> y += 1
>>> print(y)
1.5
© SUPINFO International University – http://www.supinfo.com
b. Opérations arithmétiques.
Module “math” :
•Pour effectuer des calculs mathématiques plus “élaborés”,
on pourra utiliser un module de fonctions complémentaires.
•Avant de l’utiliser, il convient de l’importer :
4. Opérations sur les variables.
from math import *
© SUPINFO International University – http://www.supinfo.com
b. Opérations arithmétiques.
Exemple :
4. Opérations sur les variables.
>>> from math import *
>>> exp(1)
2.718281828459045
>>> pi
3.141592653589793
>>> cos(pi/2)
6.123233995736766e-17
© SUPINFO International University – http://www.supinfo.com
c. Opérations sur les chaînes.
• En Python, une chaîne de caractères est considérée
comme une suite de caractères.
• Cela signifie entre autres que l’on pourra avoir accès à
n’importe lequel de ces caractères via sa position dans la
chaîne.
• Particularité importante, une variable dont le type est
“str” est en fait une constante.
4. Opérations sur les variables.
© SUPINFO International University – http://www.supinfo.com
c. Opérations sur les chaînes.
Exemple : la chaîne “street”
4. Opérations sur les variables.
s t r t
e
0
-6
1
-5
2
-4
4
-2
5
-1
Indexation des caractères
à partir du début
Indexation des caractères
à partir de la fin
e
3
-3
© SUPINFO International University – http://www.supinfo.com
c. Opérations sur les chaînes.
Accès aux éléments (“slicing”) :
4. Opérations sur les variables.
Opération Résultat
s[i] i-ème élément de s
s[i:j] Sous-chaîne de s constituée des éléments entre
le i-ème (inclus) et le j-ème (exclus)
s[i:j:k] Sous-chaîne de s constituée des éléments entre
le i-ème (inclus) et le j-ème (exclus)
pris avec un pas de k
© SUPINFO International University – http://www.supinfo.com
c. Opérations sur les chaînes.
Exemple :
4. Opérations sur les variables.
>>> s = 'street'
>>> print(s[0],s[-1])
s t
>>> s[2:]
'reet'
>>> s[1:4]
'tre'
>>> s[2] = 'z'
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: 'str' object does not support item
assignment
© SUPINFO International University – http://www.supinfo.com
c. Opérations sur les chaînes.
Opérations de traitement :
4. Opérations sur les variables.
Opération Résultat
x in s Teste si x appartient à s
x not in s Teste si x n’appartient pas à s
s + t Concaténation de s et t
s * n ou n * s Concaténation de n copies de s
len(s) Nombre d’éléments de s
min(s) Plus petit élément de s
max(s) Plus grand élément de s
s.count(x) Nombre d’occurences de x dans s
s.index(x) Indice de x dans s.
© SUPINFO International University – http://www.supinfo.com
c. Opérations sur les chaînes.
Exemple :
4. Opérations sur les variables.
>>> texte = "street"
>>> 'z' not in texte
True
>>> len(texte)
6
>>> 3*texte
'streetstreetstreet'
>>> texte.count('e')
2
>>> max(texte)
't'
© SUPINFO International University – http://www.supinfo.com
c. Opérations sur les chaînes.
Opérations de conversions en minuscules et majuscules :
4. Opérations sur les variables.
Opération Résultat
s.lower() Convertit la chaîne de caractères s en
minuscules
s.upper() Convertit la chaîne de caractères s en
majuscules
© SUPINFO International University – http://www.supinfo.com
c. Opérations sur les chaînes.
Exemples :
4. Opérations sur les variables.
>>> texte = "The Rolling Stones"
>>> texte.upper()
'THE ROLLING STONES'
>>> texte.lower()
'the rolling stones’
>>> texte
'The Rolling Stones'
© SUPINFO International University – http://www.supinfo.com
Fin de ce chapitre
Avez – vous des questions ?
4. Opérations sur les variables.
© SUPINFO International University – http://www.supinfo.com
Structures de contrôle
En général, trois structures de contrôle sont à distinguer :
• a. Structure séquentielle,
• b. Sélection (Choix ou test),
• c. Boucles (ou itérations).
4. Structures de contrôle
.
© SUPINFO International University – http://www.supinfo.com
a. Structure Séquentielle
Dans un algorithme, les instructions sont exécutées
séquentiellement c’est-à-dire l’une après l’autre.
Un bloc est une suite d’instructions délimitée par ‘’début’’
et ‘’fin’’, qui s’exécutent séquentiellement.
4. Structures de contrôle.
© SUPINFO International University – http://www.supinfo.com
b. Sélection (instruction alternative)
L’instruction Si : Cette instruction peut être représentée
dans un algorithme sous deux formes:
• Syntaxe 1 :
Si (Condition) alors
Bloc 1
finSi.
4. Structures de contrôle
© SUPINFO International University – http://www.supinfo.com
b. Sélection (instruction alternative)
L’instruction Si : Cette instruction peut être représentée
dans un algorithme sous deux formes:
Syntaxe 2 :
Si (Condition) alors
Bloc 1
Sinon
Bloc 2
finSi.
4. Structures de contrôle
© SUPINFO International University – http://www.supinfo.com
b.Sélection (instruction alternative)
Sélection (instruction alternative)
Exercice : Calcul de la valeur absolue d’un nombre réel x.
4. Structures de contrôle
© SUPINFO International University – http://www.supinfo.com
c. Les boucles
Intérêt des boucles
Problème : Dans un algorithme, il arrive souvent que la
même action soit répétée plusieurs fois. Ainsi, il est ennuyant
d’écrire un algorithme qui contient de nombreuses fois la
même instruction.
Solution : Pour pallier à ce problème, on fait appel à des
instructions en boucle qui ont pour effet de répéter plusieurs
fois une même action.
4. Structures de contrôle
© SUPINFO International University – http://www.supinfo.com
c. Les boucles
On distingue deux formes de boucles :
1. Répétitions inconditionnelles où le nombre de répétitions
est connu avant l’exécution de l’algorithme,
2. Répétitions conditionnelles où le nombre de répétitions
est inconnu avant l’exécution de l’algorithme.
Itération : C’est l’exécution de la liste des instructions dans
une boucle
4. Structures de contrôle
© SUPINFO International University – http://www.supinfo.com
c. Les boucles
Répétitions inconditionnelles : la boucle ‘’Pour’’
Cette boucle est utilisée surtout si le nombre d’itérations à
effectuer est connu au préalable.8
• Syntaxe :
pour variable ← valeur initiale à variable ← valeur finale faire
liste d’instructions
finpour
4. Structures de contrôle
© SUPINFO International University – http://www.supinfo.com
Exercice : Effectuer la somme de 0 à n (nombres entiers
naturels)
4. Structures de contrôle
© SUPINFO International University – http://www.supinfo.com
c. Les boucles
La boucle ‘’Tant que...Faire’’
Quand il est à priori impossible de connaître à l’avance au
bout de combien d’itérations une condition cessera d’être
satisfaite, on utilise Tant que…Faire
Syntaxe :
Tantque (condition) Faire
Liste d’instructions
FinTant
La liste d’instructions est répétée autant de fois que la
condition est vraie.
4. Structures de contrôle
© SUPINFO International University – http://www.supinfo.com
Exercice: Effectuer la somme des n premiers nombres entiers
naturels
4. Structures de contrôle
© SUPINFO International University – http://www.supinfo.com
c. Les boucles
Exemple : Saisir au clavier un nombre n compris entre 0 et
10.
Répéter
ecrire(‘Donner un nombre n compris entre 0 et 10’)
lire(n)
Tant que ((n<0) OU (n>10))
4. Structures de contrôle
© SUPINFO International University – http://www.supinfo.com
c. Les boucles
Boucles imbriquées
On dit qu’une boucle est imbriquée s’elle contient d’autres
boucles.
Exemple :
Variables i, j : entiers
Début
Pour i← 1 à i← 10 Faire
ecrire("Première boucle")
Pour j ← 1 à j← 6 Faire
ecrire("Deuxième boucle") ;
Finpour(j) ;
Finpour(i) ;
Fin.
4. Structures de contrôle
© SUPINFO International University – http://www.supinfo.com
c. Les boucles
Les instructions break et continue
Le principe des boucles est de parcourir un bloc de code
jusqu’à ce que la condition soit
fausse, mais parfois nous souhaitons :
• Mettre fin à l’itération en cours
• Mettre fin à la totalité de la boucle sans vérifier la
condition.
Les instructions break et continue sont utilisées dans ces
deux cas (voir figure ci-dessus).
4. Structures de contrôle
© SUPINFO International University – http://www.supinfo.com
c. Les boucles
4. Structures de contrôle
L’instruction break est utilisé pour quitter une boucle while/for, alors que continue
est utilisé pour ignorer le bloc actuel et revenir à l’instruction while/for

Algorithmique et programmation Introduction.ppt

  • 1.
    © SUPINFO InternationalUniversity – http://www.supinfo.com Premiers pas. 1ADS Algorithm in Python
  • 2.
    © SUPINFO InternationalUniversity – http://www.supinfo.com Objectifs de ce module • Introduire les notions d’algorithmes et de programmes informatiques. • Présenter plus particulièrement le langage Python et deux de ses environnements de développement. • Effectuer ses premières manipulations de variables. Premiers pas.
  • 3.
    © SUPINFO InternationalUniversity – http://www.supinfo.com Plan de ce module 1. Généralités sur l’algorithmique et la programmation. 2. Prise en main de l’environnement de développement. 3. Notion de variables. 4. Opérations sur les variables. 5. Structures de contrôle. Premiers pas.
  • 4.
    © SUPINFO InternationalUniversity – http://www.supinfo.com 1. Généralités sur l’algorithmique et la programmation. Premiers pas.
  • 5.
    © SUPINFO InternationalUniversity – http://www.supinfo.com Plan de ce chapitre a. Autour de la notion d’algorithme. b. De l’algorithme au programme. c. Pourquoi le choix du Python pour débuter ? d. Quelle version de Python ? 1. Généralités sur l’algorithmique et la programmation.
  • 6.
    © SUPINFO InternationalUniversity – http://www.supinfo.com a. Autour de la notion d’algorithme. • Un algorithme est une suite d’instructions permettant la résolution d’un problème en un nombre fini d’étapes. • À partir de données, les entrées de l’algorithme, on va donc parvenir à un résultat, la sortie. • Il est important de noter que les instructions d’un algorithme doivent être indépendantes des données sur lesquelles il va s’appliquer. 1. Généralités sur l’algorithmique et la programmation.
  • 7.
    © SUPINFO InternationalUniversity – http://www.supinfo.com a. Autour de la notion d’algorithme. Exemple : recette de cuisine. • Problème : comment faire une pâte à crêpes ? • Résolution : ① Casser trois œufs dans 250 grammes de farine. ② Mélanger. ③ Diluer avec ½ litre de lait. ④ Ajouter une cuillère à soupe d’huile. 1. Généralités sur l’algorithmique et la programmation.
  • 8.
    © SUPINFO InternationalUniversity – http://www.supinfo.com a. Autour de la notion d’algorithme. Origine du mot algorithme • Le mot algorithme vient du nom du mathématicien perse Abu Abdullah Muhammad ibn Musa al-Khwarizmi (9 ème siècle après Jésus Christ). • Son nom a ensuite été latinisé au Moyen Age en « algoritmi » . • Origine du mot algorithme ne veut pas dire origine du principe. On écrivait des algorithmes dès l’antiquité comme nous allons le voir sur des exemples. 1. Généralités sur l’algorithmique et la programmation.
  • 9.
    © SUPINFO InternationalUniversity – http://www.supinfo.com a. Autour de la notion d’algorithme. Algorithme de calculs d’intérêts (1800 avant J.-C.) •Problème : trouver en combien d’années on double un montant soumis à un certain taux annuel. •Résolution : ① Initialiser le taux t à la valeur voulue, a à 0 et b à 1 ② Tant que b < 2, remplacer b par b*(1+t) et ajouter 1 à a. ③ La valeur finale de a est le nombre d’années cherché. 1. Généralités sur l’algorithmique et la programmation.
  • 10.
    © SUPINFO InternationalUniversity – http://www.supinfo.com a. Autour de la notion d’algorithme. Exemple (pour un taux de 20%) et photo du manuscrit : 1. Généralités sur l’algorithmique et la programmation. a b 0 1 1 1,2 2 1,44 3 1,728 4 2,0736 Il faut 4 ans
  • 11.
    © SUPINFO InternationalUniversity – http://www.supinfo.com a. Autour de la notion d’algorithme. Algorithme de multiplication égyptienne (1650 avant J.-C.) •Problème : multiplier deux entiers a et b. •Résolution : ① Décomposer a comme somme de puissances de 2. ② Calculer les puissances de 2, 4, 8, etc. de b. ③ Additionner les puissances de b qui correspondent aux puissances de 2 trouvées dans a. 1. Généralités sur l’algorithmique et la programmation.
  • 12.
    © SUPINFO InternationalUniversity – http://www.supinfo.com a. Autour de la notion d’algorithme. Exemple et photo du manuscrit : 1. Généralités sur l’algorithmique et la programmation. 2n a = 25 b = 14 1 1 14 2 0 28 4 0 56 8 1 112 16 1 224 a * b = 14 + 112 + 224 = 350
  • 13.
    © SUPINFO InternationalUniversity – http://www.supinfo.com a. Autour de la notion d’algorithme. Algorithme d’Euclide (300 avant J.-C.) • Problème : trouver le PGCD de deux entiers a et b. • Résolution : ① Si b est non nul, diviser a par b. On note r le reste de cette division euclidienne. ② Remplacer a par b et b par r. ③ Recommencer tant que cela est possible à partir de l’étape 1. ④ Le PGCD est alors la dernière valeur non nulle de r. 1. Généralités sur l’algorithmique et la programmation.
  • 14.
    © SUPINFO InternationalUniversity – http://www.supinfo.com a. Autour de la notion d’algorithme. Exemple et photo du manuscrit : 1. Généralités sur l’algorithmique et la programmation. a b r 142 38 28 38 28 10 28 10 8 10 8 2 8 2 0 PGCD(142,38) = 2
  • 15.
    © SUPINFO InternationalUniversity – http://www.supinfo.com Définition d’un algorithme •C’est une suite finie d’instructions, qu’on applique à un nombre fini de données, dans un ordre bien déterminé pour résoudre un problème donné. Autre définition •Un algorithme est la description de la méthode de résolution d’un problème posé. L’algorithmique : •L’algorithmique est la science qui étudie l’application des algorithmes à l’informatique
  • 16.
    © SUPINFO InternationalUniversity – http://www.supinfo.com Construction d’un algorithme: Définition: Construire un algorithme consiste à concevoir les actions qu'il faut organiser dans le temps, et à choisir la manière de les organiser pour obtenir le résultat escompté par leurs effets cumulés. 1. Généralités sur l’algorithmique et la programmation.
  • 17.
    © SUPINFO InternationalUniversity – http://www.supinfo.com Étapes de construction d’un algorithme • Position du problème et précision des conditions de travail: Objets caractérisant les informations ou les données à manipuler. • Réfléchir à une méthode bien définie pour résoudre le problème. • Décrire cette méthode sans ambiguïté. • Évaluer la méthode décrite (temps d’exécution, nombre d’opérations, taille, etc..). • Réfléchir aux qualités et aux défauts de la méthode choisie. • Réfléchir à d’autres méthodes et les comparer selon les critères de qualité définis. 1. Généralités sur l’algorithmique et la programmation. a. Autour de la notion d’algorithme.
  • 18.
    © SUPINFO InternationalUniversity – http://www.supinfo.com b. De l’algorithme au programme. • En informatique, les instructions d’un algorithme seront bien sûr à destination d’un ordinateur. • Pour qu’elles soient compréhensibles par ce dernier, elles doivent évidemment être écrites dans ce que l’on appelle un langage de programmation. • Celui-ci sera lui même traduit par un compilateur en langage machine ou exécuté par un interpréteur. 1. Généralités sur l’algorithmique et la programmation.
  • 19.
    © SUPINFO InternationalUniversity – http://www.supinfo.com b. De l’algorithme au programme. • Avant l’étape d’écriture du programme, on peut/doit concevoir l’algorithme en lui même de façon non formelle, en version « papier ». • L’algorithme contient la réflexion, l’abstraction du programme. • Ce dernier pouvant être complexifié par des contraintes techniques. 1. Généralités sur l’algorithmique et la programmation. Problème Algorithme Programme
  • 20.
    © SUPINFO InternationalUniversity – http://www.supinfo.com b. De l’algorithme au programme. 1. Généralités sur l’algorithmique et la programmation.
  • 21.
    © SUPINFO InternationalUniversity – http://www.supinfo.com b. De l’algorithme au programme. • Nous n’adopterons pas dans ce cours de syntaxe formalisée des algorithmes, chacun les rédigera pour lui- même dans l’unique but de structurer ses idées. • On peut même tout à fait imaginer faire des schémas en guise d’algorithme. 1. Généralités sur l’algorithmique et la programmation.
  • 22.
    © SUPINFO InternationalUniversity – http://www.supinfo.com b. De l’algorithme au programme. Exemple : l’algorithme de calculs d’intérêts du slide 9 deviendra le programme suivant en Python 1. Généralités sur l’algorithmique et la programmation. t = 0.2 a, b = 0, 1 while b < 2: b = b*(1+t) a = a + 1 print("Nombre d'années cherché :",a)
  • 23.
    © SUPINFO InternationalUniversity – http://www.supinfo.com c. Pourquoi le choix du Python ? • Il possède une syntaxe simple. • On peut donc se concentrer sur la logique algorithmique. • Le mode “console” permet de tester des portions de codes immédiatement. • C’est un langage interprété, c’est-à-dire que les instructions des programmes seront exécutées au fur et à mesure. 1. Généralités sur l’algorithmique et la programmation.
  • 24.
    © SUPINFO InternationalUniversity – http://www.supinfo.com c. Pourquoi le choix du Python ? • C’est un langage de haut niveau, on ne souciera pas de la gestion des ressources mémoires. • Python possède des structures de données évoluées, listes, ensembles, dictionnaires, etc. • Python est de plus en plus populaire et possède de nombreuses ressources bibliographiques. • Enfin, c’est un langage open source. 1. Généralités sur l’algorithmique et la programmation.
  • 25.
    © SUPINFO InternationalUniversity – http://www.supinfo.com d. Quelle version de Python ? • Il y a principalement deux “branches” différentes de Python : 2.x et 3.x • Même si elles sont assez semblables dans l’esprit, on peut noter d’importantes différences de syntaxes, fonctionnalités, etc. • Ce cours est basé sur la branche 3.x, et plus particulièrement sur la version 3.3.5 1. Généralités sur l’algorithmique et la programmation.
  • 26.
    © SUPINFO InternationalUniversity – http://www.supinfo.com Fin de ce chapitre Avez – vous des questions ? 1. Généralités sur l’algorithmique et la programmation.
  • 27.
    © SUPINFO InternationalUniversity – http://www.supinfo.com 2. Prise en main de l’environnement de développement. Premiers pas.
  • 28.
    © SUPINFO InternationalUniversity – http://www.supinfo.com Plan de ce chapitre 2. Prise en main de l’environnement de développement. a. Téléchargement de IDLE et PyCharm. b. Utilisation de la console. c. Écriture de scripts.
  • 29.
    © SUPINFO InternationalUniversity – http://www.supinfo.com 3. NOTION DE VARIABLES. Premiers pas.
  • 30.
    © SUPINFO InternationalUniversity – http://www.supinfo.com Plan de ce chapitre 4. Notions de variables. a.Constantes b.Variables. c.Les types de variables. d.Affectation de variables. e.Spécificités du Python. f.Conversions de types. g.Affichage et saisie.
  • 31.
    © SUPINFO InternationalUniversity – http://www.supinfo.com a.Constantes Définition : Les constantes sont des quantités fixées et invariantes au cours de l’algorithme. • Déclaration d’une constante : Instruction permettant de réserver de l’espace mémoire pour stocker des données dont la valeur est fixée pour tout l’algorithme. Exemple : constantes MAX=100 e = 2.72 3. Notions de variables.
  • 32.
    © SUPINFO InternationalUniversity – http://www.supinfo.com b. Variables. • Dans un algorithme (ou programme informatique), le stockage des informations est primordial. Ces informations sont essentiellement : • Les données fournies par l’utilisateur (les entrées); • Les résultats obtenus par l’algorithme (les sorties); • Les données intermédiaires. • Un algorithme ou un programme manipulent des données. Certaines sont connues dès le départ, d’autres sont calculées lors de son exécution. • Pour pouvoir manipuler ces données il faut garder leurs valeurs en mémoire. C’est le rôle des variables. 3. Notions de variables.
  • 33.
    © SUPINFO InternationalUniversity – http://www.supinfo.com b. Variables. Variable : • Nom désignant une donnée (nombre, texte…) susceptible de changer de valeur. • Une variable possède un type, ce qui permet à l’ordinateur de savoir quelles valeurs elle peut prendre et quelles opérations on peut effectuer avec. 3. Notions de variables.
  • 34.
    © SUPINFO InternationalUniversity – http://www.supinfo.com c. Les types de variables. Les différents types utilisés : • Type Entier : pour manipuler les nombres entiers positifs ou négatifs. Par exemple : 25, -15, etc. • Type Réel : pour manipuler les nombres à virgule. Par exemple : 3.14, -15.5, etc. • Type Caractère : pour manipuler des caractères alphabétiques et numériques. Par exemple : 'a', 'A', 'z', ' ?', '1', '2' etc. • Type Chaîne : pour manipuler des chaînes de caractères permettant de représenter des mots ou des phrases. • Type Booléen : pour les expressions logiques. Il n'y a que deux valeurs booléennes : vrai et faux 3. Notions de variables.
  • 35.
    © SUPINFO InternationalUniversity – http://www.supinfo.com c. Les types de variables. Types “élémentaires” en Python : •int : nombres entiers. •float : nombres décimaux. •complex : nombres complexes. •bool : booléens (deux valeurs possibles “True” et “False”). •str : chaînes de caractères. 3. Notions de variables.
  • 36.
    © SUPINFO InternationalUniversity – http://www.supinfo.com d. Affectation C’est une instruction qui consiste à doter une variable d’une valeur appartenant à son domaine, c’est-à-dire à lui donner une première valeur ou à changer sa valeur courante. Elle se réalise au moyen de l’opérateur Syntaxe : Nom_variable ← Valeur Nom_variable ← Nom_variable Exemple : x ← 4 signifie: - mettre la valeur 4 dans la case mémoire identifiée par x (on dit aussi x reçoit 4). - copier dans x la valeur 4 4. Opérations sur les variables.
  • 37.
    © SUPINFO InternationalUniversity – http://www.supinfo.com d. Affectation de variables (python). • Syntaxe : affectation simple • Syntaxe : affectation multiple 3. Notions de variables. maVariable = valeur var1, var2, ... = val1, val2, ...
  • 38.
    © SUPINFO InternationalUniversity – http://www.supinfo.com d. Affectation de variables. Remarques : •Comme mentionné précédemment, lorsque l’on veut utiliser une variable il n’y a donc pas besoin de déclarer son type. C’est lors de son initialisation que ce typage s’effectue. •On peut toujours vérifier le type d’une variable avec l’instruction “type” : 3. Notions de variables. type(maVariable)
  • 39.
    © SUPINFO InternationalUniversity – http://www.supinfo.com d. Affectation de variables. Exemple : 3. Notions de variables. >>> i = 4 >>> type(i) <class 'int'> >>> x, z = -5.3, 1+1j >>> z (1+1j) >>> type(z) <class 'complex'> >>> type(x) <class 'float'>
  • 40.
    © SUPINFO InternationalUniversity – http://www.supinfo.com d. Affectation de variables. 3. Notions de variables. >>> texte = 'Street fighting man' >>> type(texte) <class 'str'> >>> texte 'Street fighting man’ >>> '666’ + 111 Traceback (most recent call last): File "<console>", line 1, in <module> TypeError: Can't convert 'int' object to str implicitly Exemple :
  • 41.
    © SUPINFO InternationalUniversity – http://www.supinfo.com e. Spécificités du Python. Typage dynamique : •Avant d’utiliser une variable on n’a pas besoin de déclarer explicitement son type, c’est l’interpréteur qui s’en charge. •Cela sera fait dès que l’on attribuera une valeur à notre variable. 3. Notions de variables.
  • 42.
    © SUPINFO InternationalUniversity – http://www.supinfo.com e. Spécificités du Python. Typage fort : •Les opérations possibles sur une variable dépendent intégralement de son type. •Les conversions de types implicites afin de réaliser certaines opérations sont donc interdites. 3. Notions de variables.
  • 43.
    © SUPINFO InternationalUniversity – http://www.supinfo.com f. Conversions de types. Opérations de conversions : 3. Notions de variables. Opération Contrainte / Résultat int(x) x est un décimal (qui sera tronqué) ou une chaîne int(x,base) x est une chaîne et base un entier float(x) x est un entier ou une chaîne complex(x,y) x et y sont des nombres ou x est une chaîne bool(x) x est un nombre ou un booléen Vaut False uniquement si x vaut 0 ou ‘ ‘ str(x) x est un nombre ou un booléen eval(x) x est une chaîne qui est évaluée comme une expression Python
  • 44.
    © SUPINFO InternationalUniversity – http://www.supinfo.com f. Conversions de types. Exemple : 3. Notions de variables. >>> x = 666.6 >>> y = int(x) >>> y 666 >>> eval('y+111') 777 >>> int('10101',2) 21 >>> str(y) '666'
  • 45.
    © SUPINFO InternationalUniversity – http://www.supinfo.com g. Instructions d’entrée/sorties (lecture/écriture) Lecture (saisie) L’instruction ’’lire’’ permet de lire une ou plusieurs variables : l’utilisateur doit saisir une ou plusieurs valeurs au clavier et valider par la touche ‘’Entrée’’. Syntaxe : lire(variable1, variable2,…) Exemples : lire (Nom) ; lire(A); lire(X, Y) Recommandation : Il est souhaitable que toute instruction de lecture d’une variable sera précédée par l’affichage d’un message qui invite l’utilisateur à saisir une variable 4. Opérations sur les variables.
  • 46.
    © SUPINFO InternationalUniversity – http://www.supinfo.com g. Instructions d’entrée/sorties (lecture/écriture) L’écriture (sortie) L’instruction ’’Écrire (ou afficher)’’ permet d’écrire à l’écran (console) les valeurs des variables et les messages. Syntaxe : Écrire (variable1, variable2,…) Écrire (‘message’) Exemples : Écrire (‘Bonjour, la séance des TDs commence à 08h.’) Cette instruction affichera à l’écran le message : Bonjour, la séance des TDs commence à 08h. Écrire(X): Cette instruction affichera la valeur de la variable X 4. Opérations sur les variables.
  • 47.
    © SUPINFO InternationalUniversity – http://www.supinfo.com g. Affichage et saisie (Python). • En mode “console” on peut afficher le contenu d’une variable en tapant juste son nom (voir exemples précédents). • Pour réaliser un affichage sur la console à partir d’un script, et/ou pour réaliser des affichages plus sophistiqués on aura besoin de l’instruction “print”. 3. Notions de variables.
  • 48.
    © SUPINFO InternationalUniversity – http://www.supinfo.com g. Affichage et saisie. Syntaxe de la fonction “print” : •Les différentes expressions (en nombre variables) sont soit des chaînes, soit des résultats de calculs convertis en chaînes, soit des variables dont on souhaite afficher la valeur. 3. Notions de variables. print(expr_1,expr_2,...,sep=‘ ‘,end=‘n’)
  • 49.
    © SUPINFO InternationalUniversity – http://www.supinfo.com g. Affichage et saisie. Syntaxe de la fonction “print” : (suite) •“sep” indique ce qui va séparer ces expressions, par défaut il s’agit d’un espace. •“end” indique ce qui sera affiché après toutes les expressions, par défaut il s’agit d’un retour à ligne. 3. Notions de variables.
  • 50.
    © SUPINFO InternationalUniversity – http://www.supinfo.com g. Affichage et saisie. Exemple : 3. Notions de variables. >>> age = 30 >>> print("J'ai",age,"ans et dans deux ans j'aurais",age+2,"ans") J'ai 30 ans et dans deux ans j'aurais 32 ans
  • 51.
    © SUPINFO InternationalUniversity – http://www.supinfo.com g. Affichage et saisie. Exemple : (suite) 3. Notions de variables. print("des","traits","bas","pour","séparer", sep='_') print("et","des","plus","à","la","suite", sep='_',end='+++ ') print("et la fin")
  • 52.
    © SUPINFO InternationalUniversity – http://www.supinfo.com g. Affichage et saisie. Remarque •Tabulation et retour à la ligne s’obtiennent avec ‘t’ et ‘n’ : 3. Notions de variables. >>> print("The tRolling Stones") The Rolling Stones >>> print("The RollingnStones") The Rolling Stones
  • 53.
    © SUPINFO InternationalUniversity – http://www.supinfo.com g. Affichage et saisie. Syntaxe de la fonction “input” : •“expression” est facultative, elle sert juste à réaliser un affichage sur la ligne de la saisie. •Ce que va saisir l’utilisateur sera affecté sous forme de chaîne de caractère à la variable “var”. 3. Notions de variables. var = input(expression)
  • 54.
    © SUPINFO InternationalUniversity – http://www.supinfo.com g. Affichage et saisie. Exemple : 3. Notions de variables. >>> a = input() >? 12 >>> print(a,type(a)) 12 <class 'str'> >>> b = eval(input("saisir un nombre : ")) saisir un nombre : >? 12 >>> print(b,type(b)) 12 <class 'int'>
  • 55.
    © SUPINFO InternationalUniversity – http://www.supinfo.com Fin de ce chapitre Avez – vous des questions ? 3. Notions de variables.
  • 56.
    © SUPINFO InternationalUniversity – http://www.supinfo.com 4. Opérations sur les variables. Premiers pas.
  • 57.
    © SUPINFO InternationalUniversity – http://www.supinfo.com Plan de ce chapitre 4. Opérations sur les variables. a. Opérateurs b. Opérations arithmétiques. c. Opérations sur les chaînes.
  • 58.
    © SUPINFO InternationalUniversity – http://www.supinfo.com a. Opérateurs . Un opérateur est un symbole significatif qui relie deux objets (variables ou constantes), pour produire un résultat. Les opérateurs sont classés comme suit : • Opérateurs arithmétiques : Ce sont des opérateurs qui opèrent sur les objets numériques (+, -, *, /, div, mod). On note que ‘’div’’ est la division entière qui donne la partie entière du quotient d’une division, et le mod (le modulo) donne le reste d’une division entière. • Opérateurs Logiques : Ce sont des opérateurs qui opèrent sur les booléens (ET, OU,NON,…). • Opérateurs de comparaison : Ce sont des opérateurs qui opèrent sur les types numériques (=, < >, <, >, <=, >=) 4. Opérations sur les variables.
  • 59.
    © SUPINFO InternationalUniversity – http://www.supinfo.com a. Opérateurs . 4. Opérations sur les variables.
  • 60.
    © SUPINFO InternationalUniversity – http://www.supinfo.com a. Opérateurs • Instruction : Elle traduit une ou plusieurs consignes (ou actions) portant sur une ou plusieurs variables. • Expression : C’est une combinaison de variables, de constantes et d'opérateurs. Le type d’une expression est défini par celui des variables et des constantes qui la constituent. Exemples : (x+y)*(x-y)/2; a div b; (x>=0) ET (y>=0) 4. Opérations sur les variables.
  • 61.
    © SUPINFO InternationalUniversity – http://www.supinfo.com a. Opérateurs • Incrémentation : C’est l’augmentation de la valeur d’une variable à chaque phase de l’exécution d’un programme (algorithme). • Décrémentation : C’est la diminution de la valeur d’une variable à chaque phase de l’exécution d’un programme (algorithme). Syntaxe : x ← x+step où ‘’step’’ est le pas d’incrémentation (ou de décrémentation). 4. Opérations sur les variables.
  • 62.
    © SUPINFO InternationalUniversity – http://www.supinfo.com Instruction, expression, affectation, incrémentation Écrire un algorithme permettant d’échanger le contenu de deux variables. 4. Opérations sur les variables.
  • 63.
    © SUPINFO InternationalUniversity – http://www.supinfo.com b. Opérations arithmétiques (Python). Liste des principales opérations arithmétiques : 4. Opérations sur les variables. Opération Résultat x + y Addition de x et y x - y Soustraction de y à x x * y Multiplication de x et y x ** y Élévation de x à la puissance y x / y Quotient réel de x par y x // y Quotient entier de x par y x % y Reste du quotient entier de x par y
  • 64.
    © SUPINFO InternationalUniversity – http://www.supinfo.com b. Opérations arithmétiques. Précisions : •Si les deux opérandes des opérations +, -, *, ** sont entiers (resp. réels) le résultat est entier (resp. réel). •Si un des deux opérandes est réel, le résultat est réel. •Le résultat de l’opération / est toujours un réel. 4. Opérations sur les variables.
  • 65.
    © SUPINFO InternationalUniversity – http://www.supinfo.com b. Opérations arithmétiques. Précisions : (suite) •Si les deux opérandes sont des entiers, le résultat de l’opération // est le quotient de la division euclidienne et le résultat de l’opération % le reste. •Si l’un des deux opérandes est un réel, le résultat de l’opération // est la partie entière du quotient de la division réelle. 4. Opérations sur les variables.
  • 66.
    © SUPINFO InternationalUniversity – http://www.supinfo.com b. Opérations arithmétiques. Exemple : 4. Opérations sur les variables. >>> -3 + 5 2 >>> 3 * 5 15 >>> 5 ** 2 25 >>> 13 / 4 3.25
  • 67.
    © SUPINFO InternationalUniversity – http://www.supinfo.com b. Opérations arithmétiques. Exemple : (suite) 4. Opérations sur les variables. >>> 13 // 4 3 >>> 13 % 4 1 >>> 13 // 4.6 2.0 >>> 13 % 4.6 3.8000000000000007
  • 68.
    © SUPINFO InternationalUniversity – http://www.supinfo.com a. Opérations arithmétiques. Quelques raccourcis : 4. Opérations sur les variables. Opération Résultat x += y x = x + y x -= y x = x - y x *= y x = x * y x **= y x = x ** y x /= y x = x / y x //= y x = x // y x %= y x = x % y
  • 69.
    © SUPINFO InternationalUniversity – http://www.supinfo.com b. Opérations arithmétiques. Exemple : 4. Opérations sur les variables. >>> x = 25 >>> y = 0.5 >>> x **= y >>> print(x) 5.0 >>> y += 1 >>> print(y) 1.5
  • 70.
    © SUPINFO InternationalUniversity – http://www.supinfo.com b. Opérations arithmétiques. Module “math” : •Pour effectuer des calculs mathématiques plus “élaborés”, on pourra utiliser un module de fonctions complémentaires. •Avant de l’utiliser, il convient de l’importer : 4. Opérations sur les variables. from math import *
  • 71.
    © SUPINFO InternationalUniversity – http://www.supinfo.com b. Opérations arithmétiques. Exemple : 4. Opérations sur les variables. >>> from math import * >>> exp(1) 2.718281828459045 >>> pi 3.141592653589793 >>> cos(pi/2) 6.123233995736766e-17
  • 72.
    © SUPINFO InternationalUniversity – http://www.supinfo.com c. Opérations sur les chaînes. • En Python, une chaîne de caractères est considérée comme une suite de caractères. • Cela signifie entre autres que l’on pourra avoir accès à n’importe lequel de ces caractères via sa position dans la chaîne. • Particularité importante, une variable dont le type est “str” est en fait une constante. 4. Opérations sur les variables.
  • 73.
    © SUPINFO InternationalUniversity – http://www.supinfo.com c. Opérations sur les chaînes. Exemple : la chaîne “street” 4. Opérations sur les variables. s t r t e 0 -6 1 -5 2 -4 4 -2 5 -1 Indexation des caractères à partir du début Indexation des caractères à partir de la fin e 3 -3
  • 74.
    © SUPINFO InternationalUniversity – http://www.supinfo.com c. Opérations sur les chaînes. Accès aux éléments (“slicing”) : 4. Opérations sur les variables. Opération Résultat s[i] i-ème élément de s s[i:j] Sous-chaîne de s constituée des éléments entre le i-ème (inclus) et le j-ème (exclus) s[i:j:k] Sous-chaîne de s constituée des éléments entre le i-ème (inclus) et le j-ème (exclus) pris avec un pas de k
  • 75.
    © SUPINFO InternationalUniversity – http://www.supinfo.com c. Opérations sur les chaînes. Exemple : 4. Opérations sur les variables. >>> s = 'street' >>> print(s[0],s[-1]) s t >>> s[2:] 'reet' >>> s[1:4] 'tre' >>> s[2] = 'z' Traceback (most recent call last): File "<console>", line 1, in <module> TypeError: 'str' object does not support item assignment
  • 76.
    © SUPINFO InternationalUniversity – http://www.supinfo.com c. Opérations sur les chaînes. Opérations de traitement : 4. Opérations sur les variables. Opération Résultat x in s Teste si x appartient à s x not in s Teste si x n’appartient pas à s s + t Concaténation de s et t s * n ou n * s Concaténation de n copies de s len(s) Nombre d’éléments de s min(s) Plus petit élément de s max(s) Plus grand élément de s s.count(x) Nombre d’occurences de x dans s s.index(x) Indice de x dans s.
  • 77.
    © SUPINFO InternationalUniversity – http://www.supinfo.com c. Opérations sur les chaînes. Exemple : 4. Opérations sur les variables. >>> texte = "street" >>> 'z' not in texte True >>> len(texte) 6 >>> 3*texte 'streetstreetstreet' >>> texte.count('e') 2 >>> max(texte) 't'
  • 78.
    © SUPINFO InternationalUniversity – http://www.supinfo.com c. Opérations sur les chaînes. Opérations de conversions en minuscules et majuscules : 4. Opérations sur les variables. Opération Résultat s.lower() Convertit la chaîne de caractères s en minuscules s.upper() Convertit la chaîne de caractères s en majuscules
  • 79.
    © SUPINFO InternationalUniversity – http://www.supinfo.com c. Opérations sur les chaînes. Exemples : 4. Opérations sur les variables. >>> texte = "The Rolling Stones" >>> texte.upper() 'THE ROLLING STONES' >>> texte.lower() 'the rolling stones’ >>> texte 'The Rolling Stones'
  • 80.
    © SUPINFO InternationalUniversity – http://www.supinfo.com Fin de ce chapitre Avez – vous des questions ? 4. Opérations sur les variables.
  • 81.
    © SUPINFO InternationalUniversity – http://www.supinfo.com Structures de contrôle En général, trois structures de contrôle sont à distinguer : • a. Structure séquentielle, • b. Sélection (Choix ou test), • c. Boucles (ou itérations). 4. Structures de contrôle .
  • 82.
    © SUPINFO InternationalUniversity – http://www.supinfo.com a. Structure Séquentielle Dans un algorithme, les instructions sont exécutées séquentiellement c’est-à-dire l’une après l’autre. Un bloc est une suite d’instructions délimitée par ‘’début’’ et ‘’fin’’, qui s’exécutent séquentiellement. 4. Structures de contrôle.
  • 83.
    © SUPINFO InternationalUniversity – http://www.supinfo.com b. Sélection (instruction alternative) L’instruction Si : Cette instruction peut être représentée dans un algorithme sous deux formes: • Syntaxe 1 : Si (Condition) alors Bloc 1 finSi. 4. Structures de contrôle
  • 84.
    © SUPINFO InternationalUniversity – http://www.supinfo.com b. Sélection (instruction alternative) L’instruction Si : Cette instruction peut être représentée dans un algorithme sous deux formes: Syntaxe 2 : Si (Condition) alors Bloc 1 Sinon Bloc 2 finSi. 4. Structures de contrôle
  • 85.
    © SUPINFO InternationalUniversity – http://www.supinfo.com b.Sélection (instruction alternative) Sélection (instruction alternative) Exercice : Calcul de la valeur absolue d’un nombre réel x. 4. Structures de contrôle
  • 86.
    © SUPINFO InternationalUniversity – http://www.supinfo.com c. Les boucles Intérêt des boucles Problème : Dans un algorithme, il arrive souvent que la même action soit répétée plusieurs fois. Ainsi, il est ennuyant d’écrire un algorithme qui contient de nombreuses fois la même instruction. Solution : Pour pallier à ce problème, on fait appel à des instructions en boucle qui ont pour effet de répéter plusieurs fois une même action. 4. Structures de contrôle
  • 87.
    © SUPINFO InternationalUniversity – http://www.supinfo.com c. Les boucles On distingue deux formes de boucles : 1. Répétitions inconditionnelles où le nombre de répétitions est connu avant l’exécution de l’algorithme, 2. Répétitions conditionnelles où le nombre de répétitions est inconnu avant l’exécution de l’algorithme. Itération : C’est l’exécution de la liste des instructions dans une boucle 4. Structures de contrôle
  • 88.
    © SUPINFO InternationalUniversity – http://www.supinfo.com c. Les boucles Répétitions inconditionnelles : la boucle ‘’Pour’’ Cette boucle est utilisée surtout si le nombre d’itérations à effectuer est connu au préalable.8 • Syntaxe : pour variable ← valeur initiale à variable ← valeur finale faire liste d’instructions finpour 4. Structures de contrôle
  • 89.
    © SUPINFO InternationalUniversity – http://www.supinfo.com Exercice : Effectuer la somme de 0 à n (nombres entiers naturels) 4. Structures de contrôle
  • 90.
    © SUPINFO InternationalUniversity – http://www.supinfo.com c. Les boucles La boucle ‘’Tant que...Faire’’ Quand il est à priori impossible de connaître à l’avance au bout de combien d’itérations une condition cessera d’être satisfaite, on utilise Tant que…Faire Syntaxe : Tantque (condition) Faire Liste d’instructions FinTant La liste d’instructions est répétée autant de fois que la condition est vraie. 4. Structures de contrôle
  • 91.
    © SUPINFO InternationalUniversity – http://www.supinfo.com Exercice: Effectuer la somme des n premiers nombres entiers naturels 4. Structures de contrôle
  • 92.
    © SUPINFO InternationalUniversity – http://www.supinfo.com c. Les boucles Exemple : Saisir au clavier un nombre n compris entre 0 et 10. Répéter ecrire(‘Donner un nombre n compris entre 0 et 10’) lire(n) Tant que ((n<0) OU (n>10)) 4. Structures de contrôle
  • 93.
    © SUPINFO InternationalUniversity – http://www.supinfo.com c. Les boucles Boucles imbriquées On dit qu’une boucle est imbriquée s’elle contient d’autres boucles. Exemple : Variables i, j : entiers Début Pour i← 1 à i← 10 Faire ecrire("Première boucle") Pour j ← 1 à j← 6 Faire ecrire("Deuxième boucle") ; Finpour(j) ; Finpour(i) ; Fin. 4. Structures de contrôle
  • 94.
    © SUPINFO InternationalUniversity – http://www.supinfo.com c. Les boucles Les instructions break et continue Le principe des boucles est de parcourir un bloc de code jusqu’à ce que la condition soit fausse, mais parfois nous souhaitons : • Mettre fin à l’itération en cours • Mettre fin à la totalité de la boucle sans vérifier la condition. Les instructions break et continue sont utilisées dans ces deux cas (voir figure ci-dessus). 4. Structures de contrôle
  • 95.
    © SUPINFO InternationalUniversity – http://www.supinfo.com c. Les boucles 4. Structures de contrôle L’instruction break est utilisé pour quitter une boucle while/for, alors que continue est utilisé pour ignorer le bloc actuel et revenir à l’instruction while/for

Notes de l'éditeur

  • #1 © SUPINFO International University - http://www.supinfo.com SUPINFO vous permet de partager ce document Vous êtes libre de : Partager — reproduire, distribuer et communiquer ce document Remixer — modifier ce document A condition de respecter les règles suivantes : Indication obligatoire de la paternité — Vous devez obligatoirement préciser l’origine « SUPINFO » du document au début de celui-ci de la même manière qu’indiqué par SUPINFO International University – Notamment en laissant obligatoirement la première et la dernière page du document, mais pas d'une manière qui suggérerait que SUPINFO International University vous soutiennent ou approuvent votre utilisation du document, surtout si vous le modifiez. Dans ce dernier cas, il vous faudra obligatoirement supprimer le texte « SUPINFO Official Document » en tête de page et préciser notamment la page indiquant votre identité et les modifications principales apportées. En dehors de ces dispositions, aucune autre modification de la première et de la dernière page du document n’est autorisée. NOTE IMPORTANTE : Ce document est mis à disposition selon le contrat CC-BY-NC-SA Creative Commons disponible en ligne http://creativecommons.org/licenses ou par courrier postal à Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA modifié en ce sens que la première et la dernière page du document ne peuvent être supprimées en cas de reproduction, distribution, communication ou modification. Vous pouvez donc reproduire, remixer, arranger et adapter ce document à des fins non commerciales tant que vous respectez les règles de paternité et que les nouveaux documents sont protégés selon des termes identiques. Les autorisations au-delà du champ de cette licence peuvent être obtenues à support@supinfo.com. © SUPINFO International University – EDUCINVEST - Rue Ducale, 29 - 1000 Brussels Belgium . www.supinfo.com
  • #2 Dans tout ce cours on ne traitera qu’un seul langage de programmation, le python.
  • #6 On ne résout pas des cas particuliers mais un cas général.
  • #7 Cet algorithme est bien indépendant des données, le fait que ces dernières proviennent de la ferme du coin ou du supermarché ne change rien.
  • #11 Cet algorithme permet donc la multiplication de deux nombres en utilisant juste des multiplications par 2 et des additions.
  • #12 La deuxième colonne n’est que la convertion du nombre a en numérotation binaire. Voir cours 1CPA pour des précisions à ce sujet.
  • #13 Il est à noter que cet algorithme est toujours utilisé de nos jours. On reviendra dessus en détail dans le cours 1ARI.
  • #18 Le langage machine est le langage utilisé par le processeur. L’auteur assume toutes les simplifications de cette partie.
  • #19 En Python nous n’aurons pas trop de contraintes techniques, c’est d’ailleurs la raison principale pour laquelle on va apprendre à programmer avec ce langage. Ça sera beaucoup moins vrai en C...
  • #20 Le langage machine est le langage utilisé par le processeur. L’auteur assume toutes les simplifications de cette partie.
  • #22 On fera des choses beaucoup plus élaborées, rassurez-vous.
  • #23 Par opposition à un langage compilé où le programme est d’abord traduit dans sa totalité en langage machine avant d’être exécuté. Toutes ces caractéristiques vont prendre progressivement leur sens au fil de ce cours.
  • #24 Toutes ces caractéristiques vont prendre progressivement leur sens au fil de ce cours.
  • #25 Voir partie suivante pour télécharger un environnement de développement.
  • #34 Deux d’entre eux ne sont pas si élémentaires que ça, « complex » et « str » puisqu’ils contiennent en fait nécessairement plusieurs valeurs...
  • #35 Deux d’entre eux ne sont pas si élémentaires que ça, « complex » et « str » puisqu’ils contiennent en fait nécessairement plusieurs valeurs...
  • #37 On essaiera de respecter la convention classique qui stipule que le nom des variables doit être en « lowerCamelCase ». L’affectation multiple est loin d’être courante dans les autres langages de programmation.
  • #38 Ce que l’on appelle « initialisation » en programmation, c’est le fait d’assigner pour la première fois une valeur à une variable.
  • #39 Au passage on s’aperçoit que l’on peut faire plusieurs affectations en une même ligne de commande. On parle alors d’affectations multiples.
  • #40 On remarque que les chaînes de caractères sont délimitées avec des ‘ ‘. Ou avec des  " ". Le dernier exemple montre le typage fort du Python.
  • #42 On ne pourra donc pas additionner une chaînes de caractères avec un nombre pour espérer produire un nombre. Ni concaténer une chaîne avec un nombre pour obtenir une chaîne. On donnera des exemples très vite.
  • #43 Ces opérations ne modifient nullement les paramètres x et y auxquelles elles s’appliquent. Voir le cours 1CPA pour des généralités sur les bases de numération.
  • #49 « par défaut » signifie que si l’on ne mentionne rien, ce sont ces valeurs qui seront utilisées.
  • #51 Notre premier script.
  • #53 Insistons sur le fait que ce que saisit l’utilisateur est nécessairement convertit en chaîne de caractère. Si l’on veut conserver le côté numérique d’une saisie, il faudra utiliser la fonction « eval » dont nous avons déjà parlé. Voir les exemples du slide suivant.
  • #57 Les opérations sur les variables booléennes seront étudiées lors du prochain module. Nous n’aborderons pas les opérations sur les nombres complexes dans ce cours.
  • #65 Remarque : on a donc toujours x = (x // y) * y + (x % y)
  • #68 Pas très puissant conceptuellement mais assez utile en pratique.
  • #70 Vous trouverez la liste des fonctions de ce module à l’adresse : https://docs.python.org/3.3/library/math.html. On reviendra plus en détail dans le ppt 3 sur ces imports de modules. Il existe également un module « cmath » contenant des fonctions agissant sur les nombres complexes.
  • #72 C’est le cas aussi de beaucoup de langages de programmation.
  • #73 Comme dans tous les langages de programmations ces indices commencent à 0. La particularité du Python est que l’on peut accéder aux caractères avec des indices négatifs, en partant de la fin de la chaîne.
  • #74 Les deux dernières opérations peuvent renvoyer une chaîne vide. La première utilisée avec un indice « incorrect » retourne une erreur. Pour éviter ce genre de problème on va bientôt présenter une fonction calculant le nombre d’éléments d’une chaîne. On pourra donc toujours vérifier la validité de nos indices. Si l’on omet le premier argument dans l’une des deux opérations de « slicing », il vaut par défaut 0, et si l’on omet le second il vaut par défaut le nombre d’éléments de la chaîne.
  • #75 L’erreur provient du fait que l’on essaie de modifier une chaîne, et que les chaînes sont des constantes.
  • #76 Les opérations « min » et « max » fonctionnent bien sûr avec les numéros « unicode » des caractères. Si l’élément « x » n’est pas dans la séquence « s », « s.index(x) » retourne une erreur. S’il y est plusieurs fois « s.index(x) » retournera la position de la première occurence de x. On reviendra l’année prochaine sur la signification de la syntaxe des opérations « count » et « index ». A noter que pour toutes ces opérations « x » n’est pas nécessairement un caractère mais peut être également une chaîne.
  • #78 Ces opérations nous seront bien utiles dans le cours 1ARI quand nous coderons des algorithmes cryptographiques. Ces opérations ne modifient pas la chaîne sur laquelle on les applique.
  • #81 Voir cours d’architecture des ordinateurs, 1CPA, pour des précisions sur cette norme.
  • #82 Voir cours d’architecture des ordinateurs, 1CPA, pour des précisions sur cette norme.
  • #83 Voir cours d’architecture des ordinateurs, 1CPA, pour des précisions sur cette norme.
  • #84 Voir cours d’architecture des ordinateurs, 1CPA, pour des précisions sur cette norme.
  • #85 Voir cours d’architecture des ordinateurs, 1CPA, pour des précisions sur cette norme.
  • #86 Voir cours d’architecture des ordinateurs, 1CPA, pour des précisions sur cette norme.
  • #87 Voir cours d’architecture des ordinateurs, 1CPA, pour des précisions sur cette norme.
  • #88 Voir cours d’architecture des ordinateurs, 1CPA, pour des précisions sur cette norme.
  • #89 Voir cours d’architecture des ordinateurs, 1CPA, pour des précisions sur cette norme.
  • #90 Voir cours d’architecture des ordinateurs, 1CPA, pour des précisions sur cette norme.
  • #91 Voir cours d’architecture des ordinateurs, 1CPA, pour des précisions sur cette norme.
  • #92 Voir cours d’architecture des ordinateurs, 1CPA, pour des précisions sur cette norme.
  • #93 Voir cours d’architecture des ordinateurs, 1CPA, pour des précisions sur cette norme.
  • #94 Voir cours d’architecture des ordinateurs, 1CPA, pour des précisions sur cette norme.
  • #95 Voir cours d’architecture des ordinateurs, 1CPA, pour des précisions sur cette norme.