Vous connaissez déjà tous les expressions mathématiques dans lesquels on retrouve des nombres, des opérateurs de calculs (+,-,..) et des variables. Par exemple:
Dans les langages de programmation, on retrouve également cette notion d'expression sous une forme un peu différente et plus générale.
Pour le moment, nous ne considérerons que deux types d'expressions:
Nous allons également nous restreindre à des expressions qui ne contiennent que des littéraux, des opérateurs et éventuellement des parenthèses.
Mais que sont les littéraux et les opérateurs ?
En ce qui nous concerne, il y aura donc pour l'instant des littéraux de type chaines de caractères et des littéraux de types numériques.
L'écriture des littéraux obéit à un certain nombre de conventions qui dépendent du type et du langage de programmation. Nous présentons ici celles du langage Python.
Un littéral numérique représente la valeur d'un nombre.
Pour l'interpréteur Python, une suite de chiffres éventuellement précédée d'un signe - ou +, est considérée comme un littéral de type numérique. Exemple: 2015, -1961, + 1935.
Pour écrire des nombres non entiers on utilise le point (et non pas la virgule !). La partie entière du nombre est suivi d'un point, puis d'une autre suite de chiffres. Exemples: 213.141559, -5.33333.
Pour pouvoir écrire des nombres très grands ou très petit, Python autorise également la notation scientifique avec la lettre e ou E pour désigner l'exposant. Par exemple 1.7 10308, s'écrit 1.7E+308 ou 1.7e+308.
En Python, un littéral de type chaine de caractères s'écrit entre guillemets ou entre quotes. Dans ce cours, nous utiliserons uniquement la notation utilisant des guillemets.
Par exemple "Il fait beau", "4012", "(3 x + 1)", "VisualC++", "@%^¨¤" sont des littéraux de type chaine de caractères.
On remarquera que tous les caractères sont autorisés entre les guillemets sauf les guillemets eux mêmes !. Pour mettre un guillemet dans une chaine de caractères, il faut le faire précéder par un anti-slash (le caractère \).
Parmis les chaines de caractères, il y en a une qui joue un rôle particulier : la chaine vide.
Voici par exemple, quelques opérateurs fréquement rencontrés dans les langages de programmation: + - / * ^ = ++ ! %
Dans ce cours, nous nous concentrerons pour l'instant sur les opérateurs suivants:
Vous connaissez déjà les quatre premiers opérateurs puisqu'il s'agit des opérateurs mathématiques classiques. Mais si vous n'avez jamais fait de programmation, vous ignorez probalement le sens de l'opérateur de concaténation. Nous en reparlerons plus loin.
Les opérateurs précédents sont tous des opérateurs binaires, c'est à dire qu'ils nécessitent deux données pour effectuer l'opération correspondante. Ces deux données s'appellent les opérandes.
En Python, une des deux opérandes figure avant l'opérateur et l'autre après. Comme par exemple 2 + 7, 3 * 9, etc .. Lorsqu'on a un opérateur binaire, on a donc forcément une opérande gauche et une opérande droite. Cela vous paraitra certainement naturel, mais sachez que d'autres langages (comme Lisp par exemple) utilisent une notation préfixée. C'est à dire que l'on écrira l'opérateur avant les deux opérandes ( par exemple + 2 7 à la place de 2 + 7).
Nous verrons ultérieurement qu'il existe également des opérateur unaires, c'est à dire des opérateurs qui ne nécessitent qu'une seule opérande.
Par exemple, si je concatène la chaine "para" avec la chaine "pluie", j'obtient la chaine "parapluie".
La manière de noter l'opérateur de concaténation dépend des langages.
En Python, il se note comme l'opérateur d'addition, c'est à dire avec un signe +.
L'opérateur de concaténation permet de construire des expressions de type chaine de caractères.
Par exemple, "Je suis " + "eric" + "Thirion" est une expression de type chaine de caractères dont la valeur est "Je suis eric Thirion".
L'écriture d'une expression dans un certain langage de programmation doit nécessairement obéir aux règles propres à ce langage.
Nous donnons ici, un certain nombre de règles non exhaustives permettant d'écrire des expressions valides en Python. Ces règles seront complètées ultérieurement
Les règles suivantes permettent de construire des expressions de type chaine de caractères valides:
Exemples d'application de ces règles :
Expression | Validité |
"Thirion" | Oui |
1961 | Non |
"Eric "+ " Thirion " | Oui |
"Eric "+ " Thirion est né en " + " 1961" | Oui |
"Eric "+ " Thirion est né en " + 1961 | Non |
Les règles suivantes (non exhaustives) permettent de construire des expressions numériques valides:
Exemples d'application de ces règles :
Expression | Validité |
1961 | Oui |
1.72 | Oui |
"1961" | Non |
1961 * 1.72 | Oui |
"1961" + 1.72 | Non |
1961/(1.72*1961) | Oui |
1961/((1.72 + 1 ) | Non |