Resume Python
Resume Python
IV. COMMENTAIRES 7
Comme le binaire est difficilement lisible, voici la représentation du même programme sous la représentation hexadécimale:
55 89 e5 83 ec 10 c7 45 f4 04 00 00 00 c7 45 f8 05 00 00 00 8b 45 f8 8b 55 f4 8d 04 02 89 45 fc 8b 45 fc c9 c3
2) Langage assembleur
Supposons, de façon un peu simplifiée, que l'on soit en présence d'un ordinateur pour lequel l'instruction machine
: 0101010011011010
1
SUP’PTIC Langage de Programmation-Python
Signification: additionner (code opération 0101) les valeurs situées aux adresses 010011 et 011010.
Nous pouvons choisir d'exprimer cela sous une forme un peu plus parlante, par exemple : ADD A, B Un
tel programme doit réaliser les tâches :
• faire correspondre un code opération à un symbole mnémonique ;
• doit être capable de décider des adresses à attribuer à chacun des symboles tels que A et B ;
Dans tous les cas, l'emploi de l'assembleur nécessite une bonne connaissance du fonctionnement de l'ordinateur utilisé. On
exprime souvent cela en disant que ce langage est orienté machine. Réaliser un programme dans ce langage nécessite de
penser davantage à la machine qu'au problème à résoudre.
4) Compiltation / Interpretation
a) La compilation consiste à traduire globalement l'ensemble du programme en langage évolué (qu'on nomme
souvent programme source) en un programme en langage machine (qu'on nomme souvent programme objet),
en utilisant un programme nommé compilateur.
b) L'interprétation consiste à traduire chaque instruction du programme source, avant de l'exécuter, à l'aide d'un
programme nommé interpréteur. Dans ce cas, il n'existe plus de programme objet complet et, à un instant
donné, on trouve en mémoire, à la fois le programme source et le programme interpréteur
Par ailleurs, il existe une technique intermédiaire entre compilation et interprétation qui consiste à traduire
globalement un programme source (compilation) en un langage intermédiaire défini comme étant commun à
un ensemble de machines, et à interpréter le résultat à l'aide d'un programme approprié. Cette technique avait
été employée avec Pascal et elle l'est actuellement avec Java et C#.
2
SUP’PTIC Langage de Programmation-Python
• Utilisé par des sites web pionniers : tels que Microsoft, YouTube, Drop Box,... Python a une forte demande sur le
marché
• Richesse en outils : de nombreux IDE sont dédiés au lanagage Python : Pycharm, Wing, PyScripter, Spyder...
• Python est orienté objet : la puissance du langage python est fortement marquée par son aspet orienté objet, qui
permet la création et la réutilisation de codes. En raison de cette possibilité de réutilisation, le travail est effectué
efficacement et réduit beaucoup de temps. Au cours des dernières années, la programmation orientée objet s’est
rapporté non seulement à des classes et des objets, mais à de nombreuses bibliothèques et frameworks. Python a son
tour a connu dans ce contexte un grand essor : des dizaines de milliers de bibliothèques sont disponibles à l’aide de
l’outil pip de gestion des packages. Simplicité et lisibilité du code : Python a une syntaxe simple qui le rend
approprié pour apprendre la programmation en tant que premier langage. L’apprentissage est plus fluide et rapide que
d’autres langages tels que Java, qui nécessite très tôt une connaissance de la programmation orientée objet ou du C/C++
qui nécessite de comprendre les pointeurs.
Néanmoins, il est possible d’en apprendre davantage sur la programmation orientée objet en Python lorsqu’il est temps.
Par conséquent, Python peut être utilisé comme prototype et peut être implémenté dans un autre langage de
programmation après avoir testé le code.
• Python est open source donc gratuit : Python étant un langage de programmation open source, il est gratuit et permet
une utilisation illimitée. Avec cette licence opensource, il peut être modifié, redistribué et utilisée commercialement.
• Python est multiplateforme : Python peut être exécuté sur tous les principaux systèmes d’exploitations, tels que :
Mac OS, Microsoft Windows, Linus et Unix...
• Python est très puissant en terme de production : la puissance du langage Python a été démontré sur le terrain du
développement :
Développement Web, en utilisant les frameworks Django, Flask, Pylons
Science des données et visualisation à l’aide de Numpy, Pandas et
Matplotlib Applications de bureau avec Tkinter, PyQt, Gtk,
wxWidgets et bien d’autres. Applications mobiles utilisant Kivy ou
BeeWare
Education : Python est un excellent langage pour apprendre l’algorithmique et
la programmation !
Installation: Python pour Win / Mac / Unix / Linux est disponible sur www.python.org
2. Utilisation
Python peut être utilisé en deux modes : a)
Le mode Interactif
Les instructions sont tapées dans l’interpréteur de ligne de commande python (Python Shell) et exécutées directement. Vous
pouvez le faire depuis Unix, DOS, ou tout autre système qui vous fournit une fenêtre de l'interpréteur de ligne de commande
3
SUP’PTIC Langage de Programmation-Python
ou un shell (>>>). Le codage avec le shell est parfait pour l'apprentissage du langage et pour tester les modules b) mode
script
Un script Python peut être saisie dans un fichier d’extension .py et exécutée avec l’interpréteur python (Python Shell)
2) Mots clés
Python possède des mots clé qui ne peuvent pas être utilisés comme nom de variable. Il s’agit de : and, assert, break,
class, continue, def, del, elif, else, except, exec, finally, for, from, global, if, import, in, is, lambda, not,
or, pass, print, raise, return, try, while
3) Le typage dynamique
L’espace de variable, s’appelle un espace de nommage.
Pour l’instruction a = 9, Python va réaliser 3 opérations :
Python crée l’entier 3 dans l’espace des objets
Python crée une variable a dans l’espace des variables
Python crée une référence entre la variable a et l’entier 3
4
SUP’PTIC Langage de Programmation-Python
Si par la suite on crée une autre variable a = ‘abc’, Python fait les mêmes opérations mais il déréférence en plus l’objet 9
pour que la variable a référence désormais l’objet ‘abc’.
La fonction type() est une fonction built-in, c’est-à-dire prédéfinie dans Python, qui donne le type d’une variable ou d’un
objet.
Exercice :
Commandes Résultat Commentaire
type(44)
type(44.0)
type(‘44’)
isinstance(23, int)
La fonction isinstance() permet de savoir si un objet est bien d’un type donné.
d= ‘l’apostrophe’
Affectation
Tapper les instructions et commenter
Instructions Commentaire
i=3
a, k=True, 3.14159
k=r=2.15
x=complex(3,4)
5
SUP’PTIC Langage de Programmation-Python
print(x)
Exercice : Écrire un programme qui permute le contenu des variables x et y
TYPE entiers (32 bits): int réels (64 bits): float complexes: complex booléens: bool
On peut parfois transformer une donnée d'un certain type, en une donnée d'un autre type. Cela s'appelle le transtypage (ou
cast en anglais).
• int() convertit en entier (l’opération s’appelle la troncation)
• float() convertit en float
• complex() convertit en complex • str() convertir en chaine de caractère Exercice :
Donnée de départ Type de donnée de départ instruction à taper type du résultat obtenu
et/ou commentaire
44.0 Int(44.0)
44.5 Int(44.5)
44 float(44)
45 float(45)
‘44’ int(‘44’)
’44.0’ float(‘44’)
’44.5’ int(’44.5’)
‘bonjour’ int(‘bonjour’)
Exercices : Déclaration et initialisation de variables et types Executez
Instructions remarques
>>>pi=3.14 >>>print(type(pi))
6
SUP’PTIC Langage de Programmation-Python
IV. COMMENTAIRES
Les commentaires sur une seule ligne s’introduisent en insérrant le symbol # avant le texte.
Les commentaires sur plusieurs lignes s’introduisent au sein des triples quotes : """ ...."""
Exemples :
a) # Ceci est un commentaire
b) " " " ceci est un commentaire
sur deux lignes " " "
7
SUP’PTIC Langage de Programmation-Python
Exercice 5.2 : Écrire un programme qui demande le prix hors taxe d’un article, calcule et affiche son prix TTC selon la
formule: pttc=pht*1.20
Exercice 5.3 : Lancez la fenêtre de l'interpréteur python et tapez les instructions suivantes dans l’ordre:
Commandes Résultat Commentaires
sqrt(25)
import math
8
SUP’PTIC Langage de Programmation-Python
sqrt(25)
help(sqrt)
3) Importation de module
from nom_module import nom_fonction Chargement d’une ou plusieurs >>> from random
fonctions d’un module import randint >>> randint(0,10)
9
SUP’PTIC Langage de Programmation-Python
Les fonctions ou sous-programmes permettent de faire la même chose sans avoir à recopier le code informatique plusieurs
fois dans le programme. Elles acceptent plusieurs paramètres ou aucun, elles peuvent retourner plusieurs résultats ou aucun.
Leur déclaration suit le schéma suivant :
Exemple : Écrire la fonction carrée () qui calcule le carré d’un nombre, écrire le code pour tester ce programme.
L’instruction return n’est pas obligatoire mais si elle est présente à un ou plusieurs endroits, aucune autre instruction de la
fonction ne sera exécutée après l’exécution de la première instruction return rencontrée lors de l’exécution de la fonction.
Les fonctions peuvent être récursives et inclure des paramètres par défaut : ces paramètres reçoivent une valeur même si
celle-ci n’est pas précisée lors de l’appel.
1
0
SUP’PTIC Langage de Programmation-Python
B. Mot-clé lambda
Le mot-clé lambda permet de définir une fonction anonyme, c’est-à-dire sans nom. lambda est utilisée lorsqu’une fonction
est à fournir dans une expression et permet d’éviter de la définir explicitement. Cette fonction doit cependant se limiter à
une seule expression.
A la fin d’un calcul, afin de voir son résultat, on utilise souvent l’instruction print. On peut se demander alors si à la fin de
chaque fonction, il ne faudrait pas utiliser l’instruction print. A quoi servirait alors l’instruction return?
Syntaxe :
If condition:
intruction
Exercice 7.1 : Écrire un programme qui demande un nombre et affiche « plus grand » si le nombre entré est plus petit que
19.
Syntaxe : If condition:
Instruction 1
else:
instruction 2
1
SUP’PTIC Langage de Programmation-Python
Un bloc est défini par une indentation obtenue en décalant le début des instructions vers la droite grâce à des espaces
en début de ligne (habituellement 4 espaces mais ce n’est pas obligatoire).
Toutes les instructions d’un même bloc doivent être indentées exactement au même niveau (c’est-à-dire décalées à
droite d’un même nombre d’espaces).
L’irrespect de l’indentation génère une erreur.
Syntaxe If expression 1:
Instruction 1
elif expression 2:
instruction 2 elif
expression 3:
instruction 3
else:
instruction 4
Exercice 7.4 : Années bissextiles
Une année est bissextile, c’est-à-dire qu’elle comporte 366 jours au lieu de 365 si elle est divisible par 4 sauf tous les
centenaires (1700, 1800, 1900, ...). Cependant tous les multiples de 400 sont quand même bissextiles. Écrire une fonction
bissextile(n) qui renvoie True ou False selon que l’année n est bissextile ou non.
B. Boucles
Il y a deux types de boucles, la boucle for parcourt un ensemble, la boucle while continue tant qu’une condition
est vraie. Comme pour les tests, une boucle est suivie du symbole : (deux points), les lignes incluses dans cette
boucle sont indentées à moins qu’il n’y en ait qu’une seule, auquel cas elle peut être écrite après le symbole :
sur la même ligne.
Syntaxe: for
while condition:
bloc d’intructions
Exercice 7.6 On sait aussi que, si n’est pas premier, il admet un diviseur m avec 2 ≤ 𝑚 ≤ √𝑛.
1
SUP’PTIC Langage de Programmation-Python
Ecrire une fonction premier(n) qui renvoie True ou False selon que n est premier ou non. Cette fonction ne devra
pas faire plus que √𝑛 tests de divisibilité.
Les boucles while et for peuvent posséder une clause else qui ne s’exécute que si la boucle se termine normalement,
c’est-à-dire sans interruption
nom = 'Cédric‘
print(nom[1], nom[3],
nom[5] )
Exercice 8.1: Donner la commande qui va extraire le n’ième caractère de la chaine ma_chaine ?
Si l’on désire déterminer le nombre de caractères présents dans une chaîne, on utilise la fonction intégrée len()
Exercice 8.2: Quelle est la longueur de ‘J’étudie le python et c’est un langage facile’?
5) Extraction de fragments de chaînes
ch = "Juliette"
1
SUP’PTIC Langage de Programmation-Python
print(nom[1], nom[3],
nom[5] )
print(ch[0:3])
print(ch[:3] )
print(ch[3:])
6) Concaténation, répétition
A partir des exemples suivants dire ce que font les opérateurs « + » et « * » lorsqu’ils sont appliqués aux chaines de
caractère.
'MAR' + 'YAM'
'zut ! ' * 4
Exercice 8.2 : Écrivez une fonction compteCar() qui compte le nombre d’occurrences d’un caractère donné dans
une chaîne.
Ainsi : print (compteCar("ananas au jus","a")) devra afficher : ananas au jus contient 4 « a ». print
(compteCar("Gédéon est déjà là","é")) devra afficher : Gédéon est déjà là contient 3 « é ».
B. Liste
En Python, les listes sont des objets qui peuvent en contenir d'autres. Ce sont donc des séquences, comme les chaînes de
caractères, mais au lieu de contenir des caractères, elles peuvent contenir n'importe quel objet. Une liste est une sorte de
tableau qui permet de mémoriser un ensemble d’éléments de types variés.
7) Création
type(m_liste)
print(ma_liste)
1
SUP’PTIC Langage de Programmation-Python
mots.append('pâté') print(mots)
• On peut insérer un élément dans une liste avec insert, ou à la fin de la liste avec append.
• Une liste est une séquence mutable pouvant contenir plusieurs autres objets.
• Une liste se construit ainsi : liste = [element1, element2, elementN].
Suppression / remplacement d’éléments
Python dispose de del et de la méthode remove pour supprimer des éléments d'une liste :
ma_liste.remove(7) ma_liste
1
SUP’PTIC Langage de Programmation-Python
Parmi les méthodes associées aux listes, mentionnons les plus utiles :
range(5,13)
range(3,16,3)
La fonction range() génère une liste de nombres entiers de valeurs croissants. range(n) génère les nombres de 0 à n-1
Exercice 8.3 : Écrire une fonction ADN qui reçoit un entier n pour paramètre et qui renvoie une chaîne de caractères chaine
de longueur n et constituée uniquement des caractères A, C, T, G répartis aléatoirement.
Exercice 8.4 Écrire deux fonctions somme et maximum qui renvoient respectivement la somme et le maximum d’une liste
d’entiers. Vérifiez votre résultat en vous servant des primitives sum et max.
C. Tuples
Les tuples sont des séquences, assez semblables aux listes, sauf qu'on ne peut modifier un tuple après qu'il ait été créé. Cela
signifie qu'on définit le contenu d'un tuple (les objets qu'il doit contenir) lors de sa création, mais qu'on ne peut en ajouter
ou en retirer par la suite.
D. Dictionnaires
Un dictionnaire est un objet conteneur associant des clés à des valeurs.
13) Création des dictionnaires
1
SUP’PTIC Langage de Programmation-Python
dico['computer'] = 'ordinateur'
dico['mouse'] ='souris'
dico['keyboard'] ='clavier' print(dico)
invent.pop(poires)
1
SUP’PTIC Langage de Programmation-Python
Pour créer un dictionnaire, on utilise la syntaxe dictionnaire = {cle1:valeur1, cle2 :valeur2, cle3:valeur3}.
On peut ajouter ou remplacer un élément dans un dictionnaire : dictionnaire[cle] = valeur.
On peut supprimer une clé (et sa valeur correspondante) d'un dictionnaire en utilisant, au choix, le mot-clé del ou la
méthode pop.
On peut parcourir un dictionnaire grâce aux méthodes keys (parcourt les clés), values (parcourt les valeurs) ou items
(parcourt les couples clé-valeur).
Exercice : Écrire une fonction qui échange les clés et les valeurs d’un dictionnaire (ce qui permettra par exemple de
transformer un dictionnaire anglais/français en un dictionnaire français/anglais). On suppose que le dictionnaire ne
contient pas plusieurs valeurs identiques.
chdir("D:\Python\TP_fichier")
print( getcwd() )
Le module os contient toute une série de fonctions permettant de dialoguer avec le système d’exploitation (os = operating
system).
1
SUP’PTIC Langage de Programmation-Python
• Lors des opérations de lecture, les lignes d’un fichier texte peuvent être extraites séparément les unes des autres. La
méthode readline(), par exemple, ne lit qu’une seule ligne à la fois.
• La méthode readlines() transfère toutes les lignes restantes dans une liste de chaînes.
• Notez bien que readline() est une méthode qui renvoie une chaîne de caractères, alors que la méthode readlines() renvoie
une liste. À la fin du fichier, readline() renvoie une chaîne vide, tandis que readlines() renvoie une liste vide. D. Ajout
dans un fichier
En Python, l’accès à un fichier est assuré par l’intermédiaire d ’un objet particulier appelé objet-fichier et créé à l’aide de la
primitive open (nom, mode) comme ceci : objet = open('mon _ fichier.txt', 'w ')
Une fois l’objet-fichier créé, il est doté de méthodes spécifiques, qui permettent notamment de lire et écrire dans le fichier,
suivant le mode d ’ouverture qui a été précisée dans le paramètre mode. Ce paramètre de type « chaîne de caractères »
peut prendre plusieurs valeurs :
r : ouverture pour lecture seule ;
w : ouverture pour écriture : si le fichier n’existe pas, il est créé, sinon son contenu est écrasé ;
a : ouverture pour ajout : si le fichier n’existe pas, il est créé, sinon l’écriture s’effectue à la suite du contenu déjà existant
+ : ouverture pour lecture et écriture.
Remarque : Lorsqu’on manipule un fichier, il est recommandé d’utiliser le mot-clé with qui a l’avantage de fermer
proprement le fichier une fois le bloc d ’instructions correspondant exécuté, et cela même si une exception a été atteinte
dans ce dernier. De plus, il permet une syntaxe plus concise :
1
SUP’PTIC Langage de Programmation-Python
Une fois la lecture ou l’écriture dans le fichier terminé, on referme le fichier à l’aide de l’instruction close.
Application 9.1 : Écrire une fonction qui renvoie le nombre de lignes d ’un fichier.
Application 9.2. Utiliser la fonction ADN pour créer une séquence d’ADN et enregistrer le résultat dans un fichier texte
ADN.txt
1
SUP’PTIC Langage de Programmation-Python
• Tkinter est un module intégré à la bibliothèque standard et permettant de créer des interfaces graphiques.
• Les objets graphiques (boutons, zones de texte, cases à cocher…) sont appelés des widgets.
• Dans Tkinter, les widgets prennent, lors de leur construction, leur objet parent en premier paramètre.
• Chaque widget possède des options qu'il peut préciser comme arguments nommés lors de sa construction.
On peut également accéder aux options d'un widget ainsi : widget["nom_option"].
SUP’PTIC Langage de Programmation-Python