- Introduction
- Le mode interactif
- Variables et affectations
- Programmation et fonctions
- Structure conditionnelle
- Boucles non bornées
- Les listes
- Boucles bornées
- Lire et écrire dans un fichier
- Application en SNT (en seconde)
Introduction au langage Python
Programmes python
Un programme est une traduction d’un algorithme dans un langage qu'un ordinateur est capable d'interpréter.
Le premier algorithme a été écrit en 1842 par Ada Lovelace ; un langage de programmation conçu entre 1977 et 1983 a d'ailleurs été baptisé en son hommage : le langage Ada.


Un programme python est l'écriture d'une séquence de commandes dans le langage python, enregistrée dans un fichier d'extention .py
appelé script. Chaque IDE propose des solutions pour lancer l'exécution d'un script. En ligne de commande, il suffit de donner le nom du script au programme python :
$ python script.py
Les commandes de ce fichier seront interprétées comme si on les entrait une à une à la main, mais aucun résultat ne sera affiché dans la console.
Par exemple, une opération en console affichera son résultat :
>>> 2+3
5
Mais la même opération dans un programme n'affichera rien. Par exemple, l'exécution dans basthon donne :
script.py
2+3
Exécution :
>>> # script executed
>>>
- Un calcul (comme
2+3
), seul, n'a pas de sens dans un script. Son résultat, en mémoire, serait immédiatement perdu puisque non affecté à une variable. - Un script s'exécute indépendament de la console, qui ne sert que d'interface de contrôle. Pour afficher quelque chose sur la console, il faut donc explicitement le demander, avec la fonction
print
script.py
somme = 2+3
print('La somme vaut :', somme)
Exécution :
>>> # script executed
La somme vaut : 5
>>>
Exercice Recopier (dans l'éditeur de basthon) puis compléter le script ci-dessous à gauche, pour qu'il produise l'affichage proposé à droite. (L'affichage doit s'adapter aux modifications éventuelles des valeurs entrées en ligne 1 du script.)
script.py
x, y = 7, 9
...
Exécution :
>>> # script executed
Le produit de 7 par de 9 vaut : 63
>>>
x, y = 7, 9
produit = x * y
print('Le produit de', x, 'par', y, 'vaut :', produit)
Interactions par la console
print
permet d'afficher un texte en console.
Elle permet donc la sortie de donnée (chaine de caractères) sous forme d'une information lisible par l'utilisateur.
input
permet d'attendre l'entrée par l'utilisateur d'une information textuelle dans la console.
Exemple :
nom = input('Quel est ton nom ? ')
print('Bonjour',nom,'!')
- demande l'âge de l'utilisateur
- et lui dise quel âge il aura dans 10 ans.
La difficulté vient de ce qu'une entrée utilisateur, attendue par la fonction input
ne peut être que textuelle :
>>> test = input('Entrée : ')
Entrée : 7
>>> test
'7'
Pour obtenir un entier, par exemple, il faut donc enssuite manipuler cette chaîne de caractères, (comme vu en 2.) :
>>> test_int = int(test)
>>> test_int
7
On peut donc proposer une solution :
nom = input('Quel est ton nom ? ')
print('Bonjour',nom,'!')
age = input('Quel est ton âge ? ') # Éviter les accents pour les variables
age = int(age) # Passage de str vers int
age_futur = age + 10
print('Dans 10 ans, tu en auras',age_futur,'!')
Fonctions
Le langage python contient déjà un certain nombre de fonctions natives (built-in) prédéfinies pour son fonctionnement. On peut en trouver une liste en suivant ce lien. Par exemple, on a déjà utilisé les fonctions len
, int
, str
,chr
, ord
...
Une fonction est une portion de code, dont les entrées sont des variables appellées paramètres et renvoyant en fin d'exécution une valeur de sortie.
def ma_fonction(parametre1, parametre2):
""" Description (Ici : renvoie la somme des valeurs des paramètres) """
resultat = parametre1 + parametre2 # Traitement (ici la somme)
return resultat
- Le mot-clef
def
permet de définir une fonction. Il doit être suivi du nom de la fonction, de parenthèses contenant les noms de ses paramètres, et se terminer par:
. - Le code de la fonction doit être indenté par 4 espaces (PEP 8).
- Les premières lignes devraient toujours contenir de la documentation entre triples guillemets.
- La dernière ligne devrait toujours indiquer la valeur à renvoyer après le mot-clef
return
.
Une fois ce script exécuté, la fonction est en mémoire. Pour l'utiliser il suffit de l'appeler, par son nom en proposant des valeurs d'entrée pour ses paramètres alors appelées arguments (ci-dessous 4 et 5) :
>>> ma_fonction(4,5)
9
nombre = input('Donne un nombre à 2 chiffres : ')
print('À l\'envers, cela donne :', verlan(nombre))
- Écrire la fonction
verlan
prenant une chaine de deux caractères en entrée et renvoyant une chaine constituée de ces deux caractères, mais dans l'ordre inverse. - Vérifier le bon fonctionnement de l'ensemble
def verlan(chaine):
""" chaine est une chaine de 2 caractères.
La fonction renvoie une chaine de caractères avec
ces mêmes caractères, dans l'ordre inverse. """
return chaine[1]+chaine[0]
nombre = input('Donne un nombre à 2 chiffres : ')
print('À l\'envers, cela donne :', verlan(nombre))
caesar
qui décale une lettre
majuscule d’un nombre de places donné dans l’alphabet (en considérant qu’après 'Z' , on retrouve 'A' ).
>>> caesar('X',4)
'B'
>>> ord('A')
65
>>> chr(90)
'Z'
On rappelle également l'existence de l'opérateur "modulo" : %
donnant le reste dans une division euclidienne :
>>> 13%3
1
def caesar(lettre, decale):
""" lettre est une chaine de 1 caractère et decale un entier.
La fonction renvoie une chaine de 1 caractère définie par
décalcage de lettre d'autant de rang dans l'alphabet que decale. """
position = ord(lettre)-65 # Position entre 0 et 25 dans l'alphabet
nouvelle_position = (position+decale) % 26
return chr(65+nouvelle_position)
print(caesar('X',4)) # Doit afficher B
Pour s'entraîner
Comme avec la fonction print
il n'est pas toujours indispensable de renvoyer une valeur de sortie si l'action de la fonction est d'envoyer directement sa donnée à un périférique de sortie (écran, imprimante, communication radio, ...). L'exercice suivant demande de dessinner des figures à l'écran. Le travail est donc plus centré sur l'utilisation correcte des paramètres.
Définir une fonction pemet de mettre en mémoire un morceau de code et donc de répéter son exécution dans des situations semblables sans avoir à le recopier à chaque fois, mais juste en ajustant ses paramètres. C'est la même idée que celle qui permet de simuler le mouvement à partir d'images chaque fois un peu différentes...