Accueil

Traduction

Tutoriel Python - sommaire

Tutoriel Python - recherche

L'auteur : Patrick Darcheville

Vous pouvez me contacter via Facebook pour questions & suggestions : Page Facebook relative à mon site

Python : l'interpréteur de commandes - les variables - les types de données

Lancer l'interpréteur

Sous Windows 10, pour démarrer l'interpréteur vous pouvez cliquer sur le raccourci dans la barre des tâches (si vous l'avez créé).
Autre solution : dans l'invite de commande Windows (tout en bas de l'écran à gauche et légendée "Tapez ici une recherche" vous saisissez "py".

Interpréteur utilisé comme calculatrice

L'interpréteur de commandes peut faire fonction de calculatrice.

Exemples de commandes

Tapez ces commandes ci-dessous dans l'interpréteur (qu'on appelle aussi "console interactive") !

Ne vous contentez pas de lire le tuto ; le meilleur moyen pour assimiler la syntaxe Python est de taper les commandes.

Les triples chevrons apparaissent pour dire que l'interpréteur est prêt à accueillir une commande.

Si vous avez un doute concernant l'ordre de priorité des opérateurs, n'hésitez pas à employer des parenthèses. Les calculs entre parenthèses se font en priorité.

Grâce à ce petit exemple, vous voyez que les multiplications sont faites avant les additions sauf si on utilise des parenthèses ( voir première instruction).

Les opérateurs

Dans le tableau ci-après, sont présentés les symboles utilisés pour les opérations de base.

OpérationsSymbolesExemples
addition+2 + 5 donne 7
soustraction-8 - 2 donne 6
multiplication*6 * 7 donne 42
exponentiation (puissance)**5 ** 3 donne 125
division/7 / 2 donne 3.5
reste de division entière%7 % 3 donne 1
quotient de division entière//7 // 3 donne 2

Utiliser des lettres dans les formules

Vous pouvez faire de l’algèbre c’est à dire utiliser des lettres. Un informaticien dit qu'il manipule des variables.

Des commandes à saisir :

J’ai créé trois variables a,b et c et j’ai affecté à chaque variable un nombre entier ou un flottant (nombre décimal).
Je vous montre ensuite que l’on peut effectuer toutes les opérations sur des variables.
On peut aussi faire des comparaisons entre variables en utilisant les opérateurs de comparaison.
Chaque comparaison retourne un booléen : True si la comparaison est vraie et False si la comparaison est fausse.
Une commande peut être accompagnée d’un commentaire. Le commentaire est précédé du symbole #.

Les commentaires sont facultatifs dans le cadre de commandes mais deviennnent indispensables dans le cadre d'instructions de programme.

Nommer des variables

Le premier caractère doit être une lettre minuscule (a-z), une lettre majuscule (A-Z) ou un tiret de soulignement. Pour les autres caractères, on autorise en plus les chiffres ( 0-9 ).
Python est sensible à la casse , c'est-à-dire qu'il fait la différence entre minuscules et majuscules. Ainsi Age et age sont deux variables différentes !

On ne peut pas employer un mot réservé pour désigner une variable.
Liste des mots réservés ci-dessous :

Donc rien ne vous interdit à priori de nommer une variable "print, round, input, range, ... " puisqu'il ne s'agit pas de mots réservés. Mais ce serait très maladroit pour la lisibilité de votre code d'employer comme nom de variable un nom de fonction générique ...

Pour nommer des variables, je vous conseille d'utiliser des mots français : compteur, points, cumuls, resultat, ...
S'il s'agit de mots composés, utilisez un trait de soulignement entre les mots OU coller les mots avec une majuscule en début de chaque mot : "camel case".
Le "camel case" est une notation consistant à écrire un ensemble de mots en les collant et en mettant en capitale la première lettre de chaque mot à partir du deuxième mot.
Exemples de variables : prix_ht, taux_tva, prix_ttc OU (camel case) : prixHt, tauxTva, prixTtc
Ne mélanger pas les deux techniques de nommage.

Les opérateurs de comparaisons

Il existe aussi les opérateurs "in" et "not in".

Attention il ne faut pas confondre affectation (d’une valeur à une variable) qui se réalise avec le signe "=" avec le test d’égalité (deux signes "=" collés).

La fonction type()

Une variable a un type en fonction de son contenu.
Exemples de commandes :

J’ai créé différentes variables nommées "a, b,c, reponse, d, q".
Par erreur j’ai affecté à la variable "b" 20,5 (et non pas 20.5). À la question "quel est le type de cette variable ? " l'interpréteur répond : class ‘tuple’... Je reviendrais plus tard sur le type "tuple".
La variable "c" est de type 'str' ('str' abréviation de 'string' ou chaine de caractères en français).
Les variables "a e & q" sont de type "float" (ou "flottant" en français). La variable de type "float" q contient une valeur approchée de 10/3. Vous verrez plus tard qu'il est possible de sauvegarder en Python une valeur sous forme d'une fraction.
"reponse2" est de type bool. Par contre "reponse" n'est pas définie ; pour créer une variable booléenne il faut lui affecter True / False avec un T ou F majuscule !

Chaine de caractères

Une chaine est une séquence de caractères délimitée par une paire de guillemets simples (') ou doubles (").
Une chaine peut, bien sûr, être stockée dans une variable.

Une chaine délimitée par des guillemets doubles peut contenir des apostrophes (').
Une chaine délimitée par des guillemets simples peut contenir une apostrophe si elle est échappé : précédée d'un antislash (\);
Un suite de chiffres délimitée par des guillemets est une chaine !

Une séquence de commandes à saisir :

La variable c est de type 'int'(contient un entier) alors que les variables a & b sont de type 'str' (chaines composées ici de caractères numériques).
chaineML contient une chaine multilignes. Une chaine multilignes (un paragraphe, par exemple) doit être délimitée par une paire de guillemets triples (simples ou doubles)
Pour créer la chaine instant2 délimitée par des guillemets simples, l'apostrophe a du être échappée.

L'opérateur + n'a pas le même sens selon qu'on manipule des nombres ou des chaines

Séquence de commandes :

L'opérateur + utilisé avec des "strings" provoque la concaténation (chaines mises bout à bout).
On ne peut pas utiliser directement l'opérateur + entre un nombre et une chaine !

Création et manipulation d'une chaine

Saisissez dans l'interpréteur les commandes suivantes :

J'affecte une chaine à une variable nommée "voyelles".

Aller plus loin avec la fonction print()

Nous venons de voir que la commande print(nomVariable) n'apportait rien par rapport à la commande nomVariable. Mais à l'intérieur des parenthèses de cette fonction on peut écrire une expression complexe ...
De plus en mode programmé, vous êtes obligé d'utiliser la fonction print().

Exemple de commande print() avec un argument complexe :

N'oubliez pas des espaces autour du mot " est " sinon tout sera collé et donc illisible.
N'oubliez pas non plus les virgules pour que tout s'affiche sur la même ligne.

Manipulation de chaines

Exemple

Une chaine de caractères est stockée dans une variable nommée texte. Puis je manipule cette variable chaine avec différentes commandes :

Syntaxe

Dans un premier cas il s'agit de fonctions génériques (peuvent s'appliquer à plusieurs types de données). Il faut donc écrire la commmande sous la forme : fonction(nomObjet)
Dans le deuxième cas il s'agit de méthodes de la classe "str" c'est à dire des fonctions spécifiques aux chaines. Il faut alors écrire la commande sous la forme :objet_string.méthode(arguments éventuels). On parle de notation pointée.

Utiliser les méthodes pour construire de nouvelles chaines

Si vous souhaitez des textes homogènes (tout en minuscules ou tout en majuscules) il faut créer de nouvelles variables de type string comme ci-dessous :

Dans la variable "text_minus" toutes les lettres sont en minuscules.
Dans la variable "texte_majus" toutes les lettres sont en majuscules.

Dans la deuxième partie je teste la méthode replace() que l'on peut appliquer à une chaine.
Attention cette méthode ne modifie pas le contenu de la chaine d'origine mais celui de la variable de destination.
Vous constatez que dans "chaine_cryptee" les lettres "a" & "e" ont été remplacées par des chiffres. C'est donc l'amorce d'un cryptage ...
Syntaxe de la méthode : nouvelle_chaine = chaine.replace('old', 'new'). On peut chainer plusieurs replace() dans la même commande !

Opérateur in

Exemples de commande avec cet opérateur :

L'interpréteur fait bien la distinction entre une lettre minuscule et son équivalent majuscule.
On dit qu'il tient compte de la casse.

Opérateur not in

Oui "x" n'est pas contenu dans la variable texte
Une double négation vaut une affirmation.

Extraction d'une partie de chaine

Pour extraire une sous-chaine d'une chaine nous allons pratiquer le "slicing" (tranchage) !

Quelques extractions

L'expression entre crochets peut laisser dubatatif ...

Le petit tableau ci-dessous va vous aider ; il indique pour chaque caractère de la chaine son indice (ou position):

Astuce : traduisez ":" par "jusqu'à".

Concaténer des chaines

Attention l'opérateur "+" n'a pas le même sens entre deux nombres et deux chaines.
Dans le premier cas il signifie addition et dans le second cas : concaténétion.
L'opérateur "+" entre une chaine et un numérique aboutit à une erreur d'exécution.

Quelques commandes à tester :

Je crée deux chaines contenant respectivement les voyelles et les consonnes de l'alphabet latin.
A partir de ces deux chaines j'en crée une troisième qui est la concaténation des deux premières.
A partir de la nouvelle chaine je peux, avec la fonction générique list(), créer une liste. Chaque lettre de la chaine d'origine devient un élément de la liste.

Transformer une chaine de mots en une liste de mots

Si une chaine comprend différents groupes de lettres séparés par des espaces, il est facile de produire une liste de ces différents mots.

Avec la méthode split() c'est chaque mot de la chaine qui dévient un élément d'une liste.
Notez que j'ai chainé la méthode split() avec la méthode lower() pour convertir dans la variable de destination, les majuscules en minuscules.
La méthode split() divise une chaîne en une liste. Vous pouvez spécifier le séparateur, le séparateur par défaut est un espace.

Dans la chaine d'origine les mots sont séparés non pas par un espace mais par un tiret ; je dois alors spécifier ce séparateur.

Je viens de vous montrer comment créer des listes à partir de chaines.
Cette notion de liste va être approfondie dans le chapitre suivant.