Calculs
Une des premières fonctionnalités d'un interpréteur est de faire des calculs:
>>> 1+2 3
Vous pouvez ajouter des espaces, cela n'aura pas d'incidences:
>>> 1 + 2 3
Tous les opérateurs sont utilisables:
>>> 1-10 -9 >>> 2*10 20 >>> 100/4 25 >>> 10%4 2 >>> 2**3 8
La double étoile représente l'exposant.
Il existe cependant une erreur à éviter pour les versions Python inférieures à Python 3 :
>>> 10/3 3
Suprise 10/3 = 3 . Alors quelle est donc cette folie? Python raisonne en nombres entiers puisque nous lui avons fourni deux nombres entiers. Pour avoir un résultat en décimales, il vous faudra utiliser cette syntaxe:
>>> 10.0/3 3.3333333333333335 >>> 10/3.0 3.3333333333333335
Les variables
Une variable est une sorte de boite virtuelle dans laquelle on peut mettre une (ou plusieurs) donnée(s). L'idée est de stocker temporairement une donnée pour travailler avec. Pour votre machine une variable est une adresse qui indique l'emplacement de la mémoire vive où sont stockées les informations que nous avons liées avec.
Affectons une valeur à la variable age que nous allons ensuite afficher:
>>> age = 30 >>> age 30On va ensuite ajouter 10 à la valeur de cette variable:
>>> age = 30 >>> age = age + 10 >>> age 40Il est possible de mettre une variable dans une autre variable.
>>> age = 30 >>> age2 = age >>> age2 30
Vous pouvez mettre à peu près tout ce que vous voulez dans votre variable, y compris du texte:
>>> age = "J'ai 30 ans" >>> age "J'ai 30 ans"
Il est possible de concaténer, c'est à dire d'ajouter du texte à du texte:
>>> age = age + " et je suis encore jeune!" >>> age "J'ai 30 ans et je suis encore jeune!"
Vous pouvez même multiplier une chaine de caractères:
>>> age = "jeune" >>> age * 3 'jeunejeunejeune'
Evidemment, si vous essayez de faire des additions avec des variables qui sont des chiffres et d'autres qui sont du texte, l'interpréteur va vous gronder:
>>> age = "J'ai 30 ans" >>> age "J'ai 30 ans" >>> age + 1 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: cannot concatenate 'str' and 'int' objects
Vous remarquez que l'interpréteur est sympa puisqu'il vous dit ce qui ne va pas: Il ne peut pas concaténer str et int .
Echapper les quotes
Comment inclure le caractère quote puisqu'il indique un début de données et en fin de données?
>>> texte = "Bonjour je m'appelle \"Olivier\"" >>> texte Bonjour je m'appelle "Olivier"
ou
>>> texte = 'Bonjour je m\'appelle "Olivier"' >>> texte 'Bonjour je m\'appelle "Olivier"'
Il existe une autre manière de stocker du texte dans une variable: l'utilisation d'un triple quote. Cela permet de ne pas échapper les caractères quotes des données
>>> texte = """ ... Bonjour je m'appelle "olivier" ... """ >>> texte '\nBonjour je m\'appelle "olivier"\n'
Nommer une variable
Vous ne pouvez pas nommer les variables comme bon vous semble, puisqu'il existe déjà des mots utilisés par Python. Voici la liste des mots réservé par python:
print in and or if del for is raise assert elif from lambda return break else global not try class except while continue exec import pass yield def finally
Pourquoi ces mots sont-ils réservés? Parce qu'ils servent à faire autre chose. Nous verrons quoi plus en détail dans les prochains chapitres.
Pour nommer une variable vous devez obligatoirement utiliser les lettres de l'alphabet, les chiffres et le caractère "_" et "-". N'utilisez pas les accents, ni les signe de ponctuation ou le signe @. De plus les chiffres ne doivent jamais se trouver en première position dans votre variable:
>>> 1var = 1 File "<stdin>", line 1 1var = 1 ^ SyntaxError: invalid syntax
Comme vous le remarquez, python refuse ce genre de syntaxe, mais il acceptera var1 = 1 .
Les types de variables
En python une variable est typée , c'est à dire qu'en plus d'une valeur, une variable possède une sorte d'étiquette qui indique ce que contient cette boite virtuelle.
Voici une liste de type de variable:
- Les integer ou nombres entiers : comme son nom l'indique un entier est un chiffre sans décimales.
- Les float ou nombre à virgules : exemple : 1.5
- Les strings ou chaine de caractères : pour faire simple tout ce qui n'est pas chiffre.
Il en existe plein d'autres mais il est peut être encore un peu trop tôt pour vous en parler.
Pour connaitre le type d'une variable, vous pouvez utiliser la fonction " type() ">>> v = 15 >>> type(v) <type 'int'>
>>> v = "Olivier" >>> type(v) <type 'str'>
>>> v = 3.2 >>> type(v) <type 'float'>
La lib Decimal pour les calculs
Le résultat de calculs en python peut être différent en fonction des machines que vous utilisez si vous travaillez avec plus de précisions utilisez Decimal.
from decimal import Decimal >>> a = 10 >>> b = 3 >>> a/b 3.3333333333333335 >>> a = Decimal('10') >>> b = Decimal('3') >>> a/b Decimal('3.333333333333333333333333333')
Types de variable
En Python, vous n'avez pas besoin de déclarer le type des variables lorsque vous les déclarez. Python est un langage de programmation dynamiquement typé, ce qui signifie que le type d'une variable est déterminé automatiquement en fonction de la valeur qu'elle contient.
Cependant, vous pouvez utiliser des annonces de type pour vérifier si les variables passées en argument d'une fonction ont le type attendu. Voici comment cela peut être fait:
def greet(name: str) -> str: return "Hello, " + name print(greet("John"))
Dans cet exemple, nous avons utilisé une annonce de type pour indiquer que l'argument name de la fonction greet doit être une chaîne de caractères. Nous avons également utilisé une annonce de type pour indiquer que la fonction greet renverra une chaîne de caractères.
Lorsque vous appelez la fonction en lui passant "John" comme argument, elle renverra "Hello, John" comme prévu. Si vous passiez un argument de type différent, par exemple un entier, vous obtiendriez une erreur de type.
Vous pouvez également utiliser des annonces de type pour vérifier le type des variables dans les arguments de plusieurs fonctions, comme ceci:
def add(x: int, y: int) -> int: return x + y print(add(3, 4))
Ici, nous avons utilisé des annonces de type pour indiquer que les arguments x et y de la fonction add doivent être des entiers, et que la fonction renverra un entier. Si vous passiez des arguments de type différent, par exemple des chaînes de caractères, vous obtiendriez une erreur de type.