Jupyter notebook Notes de cours/Introduction-1.ipynb
Introduction à l'informatique et Python
Python comme (super) calculatrice
Les opérations de base sur les entiers
Attention : il y a deux divisions différentes !
Notez qu'on utilise le symbole #
(dièse) pour commenter la fin de la ligne, c'est-à-dire pour dire à l'interpréteur d'ignorer tout ce qui suit.
Attention : pour élever à une puissance, on n'utilise pas ^
mais **
:
Les flottants
Les flottants (type float
) sont les nombres à virgule de Python :
La virgule se note avec un point :
3.2
;Ce ne sont que des nombres avec un nombre fini de chiffres après la virgule ;
Ils sont représentés en binaire : certains opérations ne sont pas exactes.
Attention !
Pour Python, il y a types de nombres : les entiers (type int
) et les flottants (type float
, nombres à virgules avec un nombre fini de décimales). Notez la différence d'affichage :
Notez que si on mélange les deux types dans une addition ou multiplication, Python transforme tout en float
:
Autres opérations mathématiques
Programmation
Les variables et affectations
On peut définir des variables, et leur affecter une valeur, en utilisant le signe =
:
Si on ré-affecte une variable, sa valeur précédente est perdue :
L'affectation est une opération asymétrique : on met dans la variable à gauche du signe égal la valeur de l'expression à droite du signe égal.
Par exemple, l'expression x = x+1
n'est pas une équation à résoudre, mais signifie « mettre la valeur de l'expression x+1
dans la variable x
» : on change donc la valeur de x
.
Dans l'exemple suivant, complétez la valeur de a
et b
à chaque ligne (puis vérifiez que ça correspond en bas !) :
Attention ! Désolé de réinsister, mais le signe =
est une affectation, de la droite vers la gauche, et sa signification est différente de sa signification en mathématiques !
Trois raccourcis plus ou moins utiles :
Écrire des programmes
Pour écrire un programme, on utilise le mot-clé def
. Un programme en Python ressemble toujours à la construction suivante (notez l'indentation, obligatoire !) :
Dans l'exemple ci-dessus, mon_programme
est le nom du programme, arg1
, arg2
et arg3
sont ses arguments.
Essayez de bien comprendre l'exemple ci-dessous, qui calcule , où et sont les deux arguments du programme :
Pour utiliser le programme inutile
, on agit comme suit :
Tests et conditionnelle
On peut faire des tests avec la construction suivante :
Attention ! L'indentation (les quatre espaces avant <résultat si condition est vraie>
) sont obligatoires.
Les différents tests sur les nombres :
x == y
:x
est égal ày
x != y
:x
est différent dey
x > y
:x
est strictement supérieur ày
x < y
:x
est strictement inférieur ày
x >= y
:x
est supérieur ou égal ày
x <= y
:x
est inférieur ou égal ày
On peut combiner les tests avec les opérations booléennes and
, or
et not
:
On peut déjà faire un programme qui renvoie le maximum de trois entiers , , :
Note : on peut écrire max3
différemment.
On peut imbriquer des
if
pour faire moins de tests ;Le mot-clé
return
peut se trouver n'importe où : dès qu'on le rencontre, le programme est fini et on ne lit pas la suite
Convainquez-vous que vous comprenez bien la fonction ci-dessous ! Faites-bien attention à l'indentation.
Les boucles
Boucle for
La boule for
(pour) permet de répéter une série d'instruction un nombre pré-défini de fois :
Par exemple, pour qu'une variable i
parcoure tous les entiers de à , on écrit for i in range(1, 10)
(oui, il faut mettre et pas !). Notez que si on commence à , on peut éviter de l'écrire : range(0, 10)
ou range(10)
signifient la même chose.
On calcule par exemple la somme des entiers jusqu'à , qui vaut :
Exemple
Le programme suivant combine la boucle for
et les conditionnelles pour calculer la somme des diviseurs strict d'un entier :
Boucle while
Une autre façon de faire des boucles est d'utiliser la boucle while
.
On recalcule la somme des entiers jusqu'à 9 (pour être bien sûr de sa valeur !) :
La boucle while
permet, contrairement à for
, de boucler sans savoir à l'avance combien de tours il y aura. Par exemple, le programme suivant calcule :
Autres types de données
Les listes
Le langage Python dispose d'une structure de donnée appelée liste, de type list
. Une liste se note [élément1, élément2, ..., élémentn]
. On peut mettre tout et n'importe quoi dedans.
Pour accéder à l'élément numéro de la liste, on écrit l[i]
. Attention, le premier élément est l'élément :
La longueur d'une liste est donnée par len
:
On peut extraire une sous-liste, ou la parcourir « à l'envers » :
De même, on peut modifier un élément d'une liste :
Attention à la copie des listes ! Comparez les deux comportements différents ci-dessous :
Plus tordu (conclusion : faire attention) :
Ajouter/supprimer des éléments à une liste :
Autres fonctions :
Algorithmes sur les listes
Exemple : trouver l'élément maximal d'une liste
En Python, on peut écrire la boucle plus simplement sans faire référence à l'indice i
:
Note. La fonction max
est prédéfinie en Python.
Les chaînes de caractères et la fonction print
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-76-ea88b1e51ab8> in <module>()
----> 1 s[3] = 'a'
TypeError: 'str' object does not support item assignment