Vous pouvez me contacter via Facebook pour questions & suggestions :
Page Facebook relative à mon site
Vous pouvez utiliser Python selon deux modes :
Pour tester la syntaxe Python il ne faut pas hésiter à utiliser le mode interactif avant de passer au mode script.
Pour démarrer l'interpréteur Python, vous pouvez cliquer sur le raccourci dans la barre des tâches (si vous l'avez créé).
OU taper "py" dans la zone de recherche de la barre d'état.
Vous pouvez aussi utiliser l'invite de commandes de Windows. Pour ouvrir ce programme, tapez "cmd" dans la zone de
recherche (dans la barre d'état) puis vous tapez "py" ; la console est prête pour interpréter des instructions en Python.
Dans ce chapitre et ceux qui suivent, je désigne par "console interactive" indifféremment ces deux interfaces.
Il faut d'abord vous familiariser avec les opérateurs de calcul Python.
Tapez ces commandes ci-dessous dans la console interactive (interpréteur Python ou Invite de commandes).
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).
Récapitulons !
Opérations | Symboles | Exemples |
---|---|---|
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 |
Vous pouvez faire de l’algèbre c’est à dire utiliser des lettres dans vos formules à condition des les avoir
déclaré et initialisé. Un informaticien dit qu'il manipule des variables.
Commandes à saisir dans la console interactive :
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.
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é.
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 non accentués 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 :
type denotation appelée "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 mais à partir du deuxième mot.
Exemples de variables : prix_ht, taux_tva, prix_ttc
OU en "camel case" : prixHt, tauxTva, prixTtc
Evitez de mélanger les deux techniques de nommage dans un même programme.
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 ou false
Il existe aussi les opérateurs "in" et "not in".
Une variable a un type en fonction de son contenu.
Pour créer une variable de type "bool" il faut affecter True ou False avec la première lettre en majuscule et surtout 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.
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" (emploi de guillemets doubles pour délimiter la chaine).
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 ...
Instructions à tester :
J'affecte une chaine à une variable nommée "voyelles".
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.
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.
Une chaine de caractères est stockée dans une variable nommée texte. Puis je manipule cette variable chaine avec différentes commandes :
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
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 !
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'à".
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.
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 le séparateur dans la méthode split() puisque que ce n'est pas le séparateur par défaut.
Je viens de vous montrer plusieurs 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.
Une liste Python c'est l'équivalent d'un "tableau indicé" dans d'autres langages (JS, PHP) donc une structure de données contenant plusieurs valeurs.