Les bases du langage Python
Installation de Python
Tous les exemples exposés ci-dessous on été programmés avec EduPython 1.3 téléchargeable en cliquant ici (130 Mo).
Voici l'interface utilisateur d'EduPython :
Utilisation de la console de Python comme une calculatrice
Comme première approche, la console de Python peut s'utiliser comme une puissante calculatrice scientifique.
Tous les exemples suivants sont à tester dans la console d'EduPython afin de découvrir les bases du langage Python en mode intéractif.
Addition et soustraction :
>>> 12+6
18
>>> 39-4
35
>>> 145+3+89
237
>>> 56-238
-182
Multiplication et division :
>>> 3*4
12
>>> 15*79
1185
>>> 8/2
4.0
>>> 36/6
6.0
>>> 547/19
28.789473684210527
La division entière (le résultat est un entier) :
>>> 89//7
12
Le reste de la division entière (opérateur modulo) :
>>> 89%7
5
La fonction puissance :
>>> 4**2
16
>>> 9**2
81
>>> 7**3
343
En Python les nombres entiers peuvent avoir une taille arbitraire. Exemples :
>>> 8769**671
5242000061832424753864480551349633223935507930231493184649674264249
9254727035038341561202458012022242396043074289530690302302825561141
7917865537234144482127062108142411526876737639526455403800606863247
8075067746407212819474748767540470079688989794979627099482395158012
8709749793907064388992424404769175881302661506179542242093329127868
1351592434800294833219005018699870553199582646490408400464096205015
0365610457797592230988916476461648964954053955056092452032321683582
5714176926588113087057675855383745749658308116722899327656329031625
2296529002544396391336999330089541784687648014903971605077500875972
7118466621461290504439079176159260528855115784063591988656187192747
1501133345819568013827311203728041631603149523160142636671562571370
3627122612272780572381176940670947216556287479183348312770367621435
2938733564121292597953548214765574875467215163534356039541724523164
1365722110180307600699425423262978859835567739180003822221218656523
7927924602898338355541728668980823343914088639089193640672421294767
6948734357393376737412225077409784905152555834334985015196944613830
2823333558684051166850840052260127155095044851465530604160140945519
7111052769995772364275655118545909968150503373637945441511064919062
2233712015246531084908644014735726752592564161716608928532402780502
4657121441045279099655728227158302001796863525036558076110189946356
9835686466471575842832586567680777494296467445430256631919644290983
8982013498339220536684041854970729589800625584661132824047536100328
0552516687178456727192893051394231327506889119135238940077912993199
6067220838085141190355682583433401754157813511993890429489122350776
4744237406856775605219676324191181020036911504837766504672500860824
7541475189892588389658971061574328576686731242931270635995551163869
2429945519388310113880383983249683573031353441018149367065346451093
3701589393839975011355860462921912283869582432266977053487187447273
6026185314999594188747002609317899136776410678968758239116666375411
2002856720584942603192416749941858696574383680780595827821293422248
5454967433905123278094659355026824651855337467313967708904399544102
3558008169696949255278492354078071991473273019336167844629671696462
8946063424066787729078099751193184742382346294717098315970821424897
3973014243650265262461024519622463070222279394556939161986348599908
6569213559555104575241556330732689072627063411757889635858461396483
1626124470523703295195749476438415722336051944502470671844103905437
8237734341290725920739664133529270111637568261476533156905928523661
7647428200258910992470561779104698280931631929872081393381571436970
3432780198382082810823591764994749150746758355454468649713638725525
109835036335742947075239211423169
Vous remarquerez que Python n'a aucune difficulté pour calculer en une fraction de seconde ce nombre qui comprend pourtant 2646 chiffres !
A retenir :
Il existe 7 opérateurs arithmétiques en Python, les voici :
Les 7 opérateurs arithmétiques |
opérateur |
opération effectuée |
+ |
addition |
- |
soustraction |
* |
multiplication |
/ |
division décimale (le résultat est un nombre décimal) |
** |
puissance |
// |
division entière (le résultat est un nombre entier) |
% |
reste de la division entière (le résultat est un nombre entier) |
Affectation d'une valeur à une variable
En Python l'affectation se fait avec le signe "égale" :
>>> a=5
>>> b=3
>>> a
5
>>> b
3
>>> a+b
8
Une variable peut contenir des nombres entiers, des nombres décimaux, ou des chaînes de caractères :
>>> a=12
>>> b=78.456
>>> c="bonjour"
>>> a
12
>>> b
78.456
>>> c
'bonjour'
A retenir :
Il existe 3 types de variables en Python, les voici :
- les nombres entiers
- les nombres décimaux
- les chaînes de caractères
Affichage d'un message à l'écran
En Python la fonction permettant d'afficher un message à l'écran est print :
>>> print("Voici un message affiché à l'écran")
Voici un message affiché à l'écran
Avec print on peut aussi afficher la valeur d'une variable :
>>> a=42
>>> print(a)
42
>>> b="bonjour"
>>> print(b)
bonjour
On peut aussi mélanger du texte et des variables :
>>> a=23
>>> b=7.4
>>> c="Python"
>>> print("a =",a," b =",b," c =",c)
a = 23 b = 7.4 c = Python
Remarque : dans print les messages en texte et les noms de variables sont séparés par une virgule.
Pour demander à l'utilisateur de saisir une valeur on utilise la fonction input :
>>> a=input("Entrez une valeur :")
Ainsi la chaîne de caractères saisie par l'utilisateur sera affectée à la variable a.
A retenir :
En Python, le dialogue entre le programme et l'utilisateur se fait grâce aux 2 fonctions suivantes :
Interface homme/machine |
fonction |
rôle |
print |
affiche une chaîne de caractères à l'écran à destination de l'utilisateur |
input |
demande à l'utilisateur de saisir une chaîne de caractères au clavier |
Effectuer un test sur une variable
Voici rapidement les différentes syntaxes de la structure conditionnelle if en Python.
Un test simple :
>>> m=12
>>> if m==12:
... print("La variable m vaut douze")
...
La variable m vaut douze
>>>
Un test complet :
>>> m=12
>>> if m!=12:
... print("La variable m ne vaut pas douze")
... else:
... print("La variable m vaut douze")
...
La variable m vaut douze
Un test avec des conditions logiques :
>>> m=12
>>> if (m % 2==0) and (m>9):
... print("m est pair et supérieur à 9")
...
m est pair et supérieur à 9
Condition logique avec un ET (noté and) et un OU (noté or) :
>>> m=-7
>>> if (m % 2==0) and (m>9) or (m<0):
... print("m est pair et supérieur à 9, ou bien m est négatif")
...
m est pair et supérieur à 9, ou bien m est négatif
L'opérateur logique not permet de tester une condition complémentaire :
>>> m=15
>>> if not((m % 2==0) and (m>9)):
... print("m n'est pas un nombre pair supérieur à 9")
...
m n'est pas un nombre pair supérieur à 9
Plusieurs tests imbriqués avec le mot clé elif :
>>> m=53
>>> if m>100:
... print("m est supérieur à 100")
... elif m<10:
... print("m est inféreur à 10")
... else:
... print("m est compris entre 10 et 100")
...
m est compris entre 10 et 100
En utilisant à la fois les opérateurs logiques and, or et not dans les formulations des conditions logiques complexes et les tests complets et imbriqués avec if, elif et else il est possible de tester finement toutes situations afin d'en détecter tous les cas particuliers recherchés.
A retenir :
Pour écrire une condition dans un if on peut utiliser les opérateurs suivants :
Les conditions dans un if |
opérateur |
test effectué |
== |
égal à |
!= |
différent de |
> |
strictement supérieur à |
>= |
supérieur ou égal à |
< |
strictement inférieur à |
<= |
inférieur ou égal à |
and |
ET logique : le résultat est vrai si les 2 conditions sont vraies |
or |
OU logique : le résultat est vrai si au moins une des 2 conditions est vraie |
not |
NON logique : le résultat est vrai si la condition est fausse |
Les boucles
En Python il existe deux types de boucle : la boucle for et la boucle while. Voyons rapidement la syntaxe de chacune d'entre elles.
La boucle for :
La boucle for s'applique à un objet composé, et bouclera tant que l'objet contient encore des éléments à extraire.
Boucle for sur une chaîne de caractères :
>>> for i in "bonjour":
... print(i)
...
b
o
n
j
o
u
r
Boucle for sur une liste :
>>> for i in [1,2,3,4]:
... print(i)
...
1
2
3
4
Affichage des entiers de 0 à 8 dans une boucle for grâce à la fonction range :
>>> for i in range(9):
... print(i)
...
0
1
2
3
4
5
6
7
8
Affichage des entiers de 1 à 9 dans une boucle for grâce à la fonction range :
>>> for i in range(9):
... print(i+1)
...
1
2
3
4
5
6
7
8
9
La boucle for peut être complétée d'un bloc else exécuté seulement à la fin de la boucle :
>>> for i in range(1,10):
... print(i)
... else:
... print("fin")
...
1
2
3
4
5
6
7
8
9
fin
Un break permet de sortir de force de la boucle sans aller jusqu'à la fin des valeurs initialement prévues dans la liste énumérée :
>>> for i in range(1,10):
... print(i)
... if i==4:
... break
...
1
2
3
4
En cas de sortie de force par break le bloc situé après else n'est pas exécuté :
>>> for i in range(1,10):
... print(i)
... if i==4:
... break
... else:
... print("fin")
...
1
2
3
4
La boucle while :
La boucle while boucle tant qu'une condition logique est vraie. On sort de la boucle lorsque la condition sera fausse.
>>> n=0
>>> while n<8:
... print(n)
... n=n+1
...
0
1
2
3
4
5
6
7
Grâce aux opérateurs logiques and, or et not la condition logique peut être d'une complexité quelconque :
>>> n=0
>>> while not(n>100 or n<60 and n>10 and not(n%3!=0)):
... print(n)
... n=n+1
...
0
1
2
3
4
5
6
7
8
9
10
11
Le mot clé break permet de sortir de force de la boucle :
>>> n=0
>>> while 1:
... n=n+1
... if n==18:
... break
...
>>> print(n)
18
Remarque : while 1: ou while True: lance une boucle infinie dont la seule issue est le déclanchement conditionnel d'un break dans la boucle.
Par défaut la boucle while commence par tester sa condition avant de rentrer dans la boucle (si la condition est fausse dès le début on ne rentre jamais dans la boucle), alors qu'une boucle infinie avec un test à la fin sortant par break oblige à entrer au moins une fois dans la boucle (équivalent à une boucle "repeat until").
Tout comme la boucle for, la boucle while peut être complétée d'un bloc else exécuté une seule fois à la sortie de la boucle, c'est-a-dire lorsque la condition devient fausse :
>>> n=1
>>> while n<10:
... print(n)
... n+=1
... else:
... print("fin")
...
1
2
3
4
5
6
7
8
9
fin
Remarque : n+=1 est strictement équivalent à n=n+1
En cas de sortie de force par break le bloc situé après else n'est pas exécuté (car la condition testée par la boucle while n'a jamais été fausse) :
>>> n=1
>>> while n<10:
... print(n)
... n+=1
... if n==4:
... break
... else:
... print("fin")
...
1
2
3
Remarque : pour composer la condition de la boucle while on utilise les mêmes opérateurs que pour la condition du if (voir le tableau "Les conditions dans un if" ci-dessus).
A retenir :
En Python il existe 2 types de boucles, les voici :
Les boucles en Python |
boucle |
principe |
for |
elle boucle tant que l'objet composé analysé renvoie des élements |
while |
elle boucle tant que la condition testée est vraie |
Les nombres aléatoires
Le module random de Python permet de tirer au sort des nombre aléatoires.
Pour l'utiliser il faut avant tout l'importer grâce à la ligne suivante :
>>> from random import *
Ensuite, la fonction randint(a,b) permet d'obtenir un nombre entier au hasard compris entre a et b :
>>> randint(1,10)
8
>>> randint(1,10)
9
>>> randint(1,10)
3
>>> randint(1,10)
1
>>> randint(1,10)
5
>>> randint(1,10)
8
|