0% ont trouvé ce document utile (0 vote)
20 vues8 pages

Introduction à Python 3 et ses concepts

Ce document présente une introduction à Python 3, en abordant les types de programmes, les techniques de production, et les méthodologies de construction. Il explique également les modes d'exécution, les identificateurs, les types de données, ainsi que les opérations arithmétiques et logiques. Enfin, il distingue les fonctions des méthodes dans le contexte de la manipulation de chaînes.

Transféré par

lamedzebi1
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
20 vues8 pages

Introduction à Python 3 et ses concepts

Ce document présente une introduction à Python 3, en abordant les types de programmes, les techniques de production, et les méthodologies de construction. Il explique également les modes d'exécution, les identificateurs, les types de données, ainsi que les opérations arithmétiques et logiques. Enfin, il distingue les fonctions des méthodes dans le contexte de la manipulation de chaînes.

Transféré par

lamedzebi1
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Une introduction à Python 3

Deux sortes de programmes


On distingue, pour faire rapide :
Le système d’exploitation : ensemble des programmes qui gèrent les ressources matérielles et
logicielles. Il propose une aide au dialogue entre l’utilisateur et l’ordinateur : l’interface
textuelle (interpréteur de commande) ou graphique (gestionnaire de fenêtres). Il est souvent
multitâche et parfois multiutilisateur;
Les programmes applicatifs sont dédiés à des tâches particulières. Ils sont formés d’une série de
commandes contenues dans un programme source qui est transformé pour être exécuté par
l’ordinateur.

Production des programmes


Deux techniques de production des programmes
La compilation est la traduction de la source en langage objet. Elle comprend au moins quatre
phases (trois phases d’analyse lexicale, syntaxique et sémantique et une phase de production
de code objet). Pour générer le langage machine il faut encore une phase particulière :
l’édition de liens. La compilation est contraignante mais offre au final une grande vitesse
d’exécution.

.
source compilateur objet exécuteur résultat

Dans la technique de l’interprétation chaque ligne de la source analysée est traduite au fur et à
mesure en instructions directement exécutées. Aucun programme objet n’est généré. Cette
technique est très souple mais les codes générés sont peu performants : l’interpréteur doit être
utilisé à chaque nouvelle exécution…

.
source interpréteur résultat

Technique de production de Python


Technique mixte : l’interprétation du bytecode compilé. Bon compromis entre la facilité de
développement et la rapidité d’exécution;
Le bytecode (forme intermédiaire) est portable sur tout ordinateur muni de la machine
virtuelle Python.

.
source compilateur bytecode interpréteur résultat

Pour exécuter un programme, Python charge le fichier source .py en mémoire vive, en fait
l’analyse (lexicale, syntaxique et sémantique), produit le bytecode et enfin l’exécute.
Afin de ne pas refaire inutilement toute la phase d’analyse et de production, Python
sauvegarde le bytecode produit (dans un fichier .pyo ou .pyc) et recharge simplement le fichier
bytecode s’il est plus récent que le fichier source dont il est issu.
En pratique, il n’est pas nécessaire de compiler explicitement un module, Python gère ce
mécanisme de façon transparente.

-
Construction des programmes
Le génie logiciel étudie les méthodes de construction des programmes. Plusieurs modèles sont
envisageables, entre autres :
La méthodologie procédurale. On emploie l’analyse descendante (division des problèmes) et
remontante (réutilisation d’un maximum de sous-algorithmes). On s’efforce ainsi de
décomposer un problème complexe en sous-programmes plus simples. Ce modèle structure
d’abord les actions;
La méthodologie objet. Centrée sur les données, elle est considérée plus stable dans le temps
et meilleure dans sa conception. On conçoit des fabriques (classes) qui servent à produire des
composants (objets) qui contiennent des données (attributs) et des actions (méthodes). Les
classes dérivent (héritage et polymorphisme) de classes de base dans une construction
hiérarchique.
Les modes d’exécution

Les deux modes d’exécution d’un code Python


Soit on enregistre un ensemble d’instructions Python dans un fichier grâce à un éditeur
(on parle alors d’un script Python) que l’on exécute par une commande ou par une
touche du menu de l’éditeur;
Soit on utilise l’interpréteur Python embarqué qui exécute la boucle d’évaluation .

>>> 5 + 3 Affichage d’une invite. L’utilisateur tape une


8 expression. Évaluation et affichage . du résultat.
>>> Réaffichage de l’invite.

Identificateurs et mots clés

a) Identificateurs
Comme tout langage, Python utilise des identificateurs pour nommer ses objets.
Un identificateur Python est une suite non vide de caractères, de longueur quelconque,
formée d’un caractère de début et de zéro ou plusieurs caractères de continuation.

b) Style de nommage
Il est important d’utiliser une politique cohérente de nommage des identificateurs. Voici le
style utilisé dans ce document :
— nom_de_ma_variable pour les variables;
— NOM_DE_MA_CONSTANTE pour les constantes;
— maFonction, maMethode pour les fonctions et les méthodes;
— MaClasse pour les classes;
— UneExceptionError pour les exceptions;
— nom_de_module pour les modules et pour tous les autres identificateurs.

-
c) Les mots réservés de Python

and del from None True


as elif global nonlocal try
assert else if not while
break except import or with
class False in pass yield
continue finally is raise
def for lambda return

d) Les types de données entiers

1. Les types de données entiers


[Link] type int

Le type int n’est limité en taille que par la mémoire de la machine.


Les entiers littéraux sont décimaux par défaut, mais on peut aussi utiliser les bases
suivantes :
>>> 2013 # décimal (base 10)
2013
>>> 0b11111011101 # binaire (base 2)
2013
>>> 0o3735 # octal (base 8)
2013
>>> 0x7dd # hexadecimal (base 16)
2013
Opérations arithmétiques
Les principales opérations :
>>> 20 + 3
23
>>> 20 - 3
17
>>> 20 * 3
60
>>> 20 ** 3
8000
>>> 20 / 3
6.666666666666667
>>> 20 // 3 # division entière
6
>>> 20 % 3 # modulo (reste de la division entière)
2
>>> abs(3 - 20) # valeur absolue
17
-
Bien remarquer le rôle des deux opérateurs de division :
/ : produit une division flottante, même entre deux
entiers; // : produit une division entière.
[Link] type bool
Principales caractéristiques du type bool :
Deux valeurs possibles : False, True.
Opérateurs de comparaison entre deux valeurs comparables, produisant un résultat de type
bool : ==,!=, >, >=, < et <= :

>>> 2 > 8
False
>>> 2 <= 8 < 15
True

Opérateurs logiques : not, or et and.


En observant les tables de vérité des opérateurs and et or, on remarque que :
dès qu’un premier membre a la valeur False, l’expression False and expression2 vaudra False.
On n’a donc pas besoin d’évaluer expression2;
de même dès qu’un premier membre a la valeur True, l’expression True or expression2 vaudra
True.

2. Les types de données flottants

Les opérateurs booléens de base


En Python les valeurs des variables booléennes sont notées False et True . Les
opérateurs sont notés respectivement not , and et or .

a not(a)
Opérateur unaire not False True
True False

a b a or b a and b

False False False False


Opérateurs binaires or et and False True True False
True False True False
True True True True

a) Le type float
Un float est noté avec un point décimal (jamais avec une virgule) ou en notation
exponentielle avec un « e » symbolisant le « puissance » suivi des chiffres de l’exposant.
Par exemple :

2.718
.02

-
-1.6e-19
6.023e23
Les flottants supportent les mêmes opérations que les entiers.
Ils ont une précision finie limitée.
L’import du module math autorise toutes les opérations mathématiques usuelles. Par
exemple :

>>> import math


>>> print([Link]([Link]/4))
0.7071067811865475
>>>> print([Link]([Link]))
180.0
>>>> print([Link](9))
362880
>>> print([Link](1024, 2))
10.0

Le type complex
Les complexes sont écrits en notation cartésienne formée de deux flottants.
La partie imaginaire est suffixée par j :

>>> print(1j)
1j
>>> print((2+3j) + (4-7j))
(6-4j)
>>> print((9+5j).real)
9.0
>>> print((9+5j).imag)
5 .0

L’affectation
On affecte une variable par une valeur en utilisant le signe = (qui n’a rien à voir avec l’égalité
en math!). Dans une affectation, le membre de gauche reçoit le membre de droite ce qui
nécessite d’évaluer
La valeur d’une variable, comme son nom l’indique, peut évoluer au cours du temps. La
valeur antérieure est perdue :

>>> a = 3 * 7
>>> a
21
>>> b = 2 * 2
>>> b
4
>>> a = b + 5
-
>>> a
9
Le membre de droite d’une affectation étant évalué avant de réaliser l’affectation elle-même,
la variable affectée peut se trouver en partie droite et c’est sa valeur avant l’affectation qui est
utilisée dans le calcul :
Le membre de droite d’une affectation étant évalué avant de réaliser l’affectation elle-même,
, avant affectation, qui
est utilisée pour le calcul :

>>> a = 2
>>> a = a + 1 # incrémentation
>>> a
3
>>> a = a - 1 # décrémentation
>>> a
2
Les variantes de l’affectation
Outre l’affectation simple, on peut aussi utiliser les formes suivantes :
>>> v = 4 # affectation simple
>>> v += 2 # affectation augmentée. Idem à v = v + 2 si v est déjà référencé
>>> v
6
>>> c = d = 8 # d reçoit 8 puis c reçoit d (c et d sont des alias)
>>> c, d
(8, 8)
>>> e, f = 2.7, 5.1 # affectation parallèle d’un tuple
>>> (e, f)
(2.7, 5.1)
>>> g, h = [’G’, ’H’] # affectation parallèle d’une liste
>>> [g, h]
[’G’, ’H’]
>>> a = 3
>>> a, b = a + 2, a * 2 # toutes les expressions sont évaluées avant la première affectation
>>> a, b
(5, 6)

Fonctions vs méthodes
On peut agir sur une chaîne en utilisant des fonction (notion procédurale) communes à tous
les types séquences ou conteneurs, ou bien des méthodes (notion objet) spécifiques aux
chaînes.
Exemple d’utilisation de la fonction len() :

>>> lng = len(”abc”)


>>> lng

-
3
Exemple d’utilisation de la méthode upper(). Remarquez la différence de syntaxe : les
méthodes utilisent la notation pointée :

>>> ”abracadabra”.upper()
”ABRACADABRA”

Vous aimerez peut-être aussi