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 : le mode console - les variables - les types de données

Vous pouvez utiliser Python selon deux modes :

  • mode console (ou interactif)
  • mode programmé (ou script) : les commandes (ou instructions) sont stockées dans un fichier ; il suffit ensuite de lancer l'éxécution de ce programme.

    Python en mode console (ou interactif)

    Si vous ne savez plus comment activer la console Python, retournez au chapitre précédent.

    Utiliser Python en guise de calculatrice

    Familiarisons-nous avec les opérateurs de calcul Python.

    Tapez ces commandes ci-dessous dans la console interactive.

    Commentaires

    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é par rapport aux autres.

    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 arithmétiques

    Récapitulons !

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

    Tous les langages ne proposent un opérateur qui retourne le quotient de la division euclidienne ... JavaScript.

    Les variables

    Utiliser des lettres dans les formules

    Vous pouvez faire de l’algèbre c’est à dire utiliser des lettres dans vos formules à condition des les avoir déclarées et initialisées. Un informaticien dit qu'il manipule des variables.
    Commandes à saisir dans la console interactive :

    Commentaires

    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 en mode commandes mais deviennnent indispensables dans le cadre d'un programme.

    Nommer des variables

    Le premier caractère qui désigne une variable 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 :

    Exemple de variable mal nommée :

    Il est interdit de nommer une variable "and" qui est un mot réservé du langage Python.

    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 native.

    Pour nommer des variables, je vous conseille d'utiliser des mots français sans lettres accentuées tels "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. Ce type de notation est appelée "camelCase". La première lettre de chaque mot mais à partir du deuxième mot.

    Exemples de variables : prix_ht, taux_tva, prix_ttc OU en "camelCase" : prixHt, tauxTva, prixTtc
    Évitez de mélanger les deux techniques de nommage dans un même programme.

    Les opérateurs de comparaisons

    Surtout ne confondez pas le symbole = qui est l'opérateur d'affectation avec == qui est un opérateur de comparaison.
    a = 5 : affectation de 5 à la variable a
    a ==5 : comparer le contenu de a à 5 ; ce test retourne true/false

    Il existe aussi les opérateurs "in" et "not in" : voir plus loin dans ce chapitre.

    La fonction type()

    En Python les variables ne sont pas typées. La fonction type retourne le type du contenu.

    La variable a est successivement de type int,bool, str, float, tuple, str.

    Pour créer une variable de type "bool" il faut affecter True ou False avec la première lettre en majuscule et surtout pas de guillemets .

    Par erreur, j’ai affecté à la variable a la valeur 10,5 (et non pas 10.5). À la question "quel est le type de cette variable ? ", la console répond : class ‘tuple’... Je reviendrais plus tard sur ce type de donnée.

    Autres tests :

    Un suite de chiffres délimitée par des guillemets (simples ou doubles) est une chaine (et non pas une valeur numérique).

    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 trois guillemets (simples ou doubles)
    Pour créer la chaine instant2 délimitée par des guillemets simples, l'apostrophe a du être échappée. Pour éviter l'échappement j'aurais pu écrire : instant2 ="aujourdh'hui" donc employer de guillemets doubles pour délimiter la chaine.

    A propos de l'opérateur +

    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 alors qu'en JavaScript c'est possible : conversion automatique .

    Création et manipulation d'une chaine

    Instructions à tester :

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

    Aller plus loin avec la fonction print()

    La fonction print() peut être argumentée avec une expression 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

    Pour le moment vous savez afficher la longueur et le type d'une chaine.
    On peut appliquer à une chaine de nombreuses fonctions génériques mais aussi des méthodes spécifiques aux objets STR et aussi utiliser certains opérateurs.

    Commandes à tester dans la console

    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 à tous les 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 objets STR. Il faut alors écrire la commande sous la forme chaine.méthode() ; on parle de notation pointée

    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.

    Je teste ensuite la méthode replace().
    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 fois replace() dans la même commande !

    Les opérateurs "in" et "not in"

    Comme in, l'opérateur not in tient compte de la casse.

    Extraction d'une partie de chaine

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

    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 : quand vous voyez ":" comprenez "jusqu'à".

    Concaténer des chaines

    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().
    La méthode split() crée une liste de mots à partir d'une chaine. Vous pouvez spécifier le séparateur. Le séparateur par défaut est un espace.

    Si dans une chaine les mots sont séparés par un autre symbole que espace il faut alors spécifier dans la méthode split() le séparateur.

    Je viens de vous montrer à maintes fois, comment créer des listes à partir de chaines. La notion de liste qui est fondamentale en python, va être approfondie dans le chapitre suivant.