Entiers et réels#

Il existe de nombreux types de variables en Python. Voici une liste non-exhaustive des types de variables que nous allons parcourir dans ce syllabus:

  • Entiers

  • Réels

  • Booléens

  • Chaînes de caractères

Nous verrons également des structures de données plus avancées, c’est-à-dire des variables qui peuvent contenir plus d’informations.

  • Listes

  • Dictionnaires

Ce chapitre s’intéresse aux types de base en Python: les entiers et les réels.

Créer une variable#

Le but d’une variable est de stocker de l’information. De cette manière, nous pourrons faire référence à cette variable et utiliser son contenu.

  • Attribuer la valeur de 1 à a et l’afficher.

a = 1
print(a)
1

Warning

Attention, il y a une différence importante entre l’environnement interactif fourni par le Shell et l’environnement “non-interactif” d’un fichier .py. Dans un environnement interactif, il suffit d’indiquer le nom de la variable pour voir le contenu de cette variable s’afficher. Ce ne sera pas le cas dans un fichier .py.

a = 1
a
1

To-do

Créez un script contenant le code a = 1 ainsi que print(a). Sauvez ce fichier et exécutez-le. A l’aide du Shell, faites apparaître la valeur de a. Recommencez ensuite en supprimant l’instruction print(a) et observez les différences.

Le contenu de cette variable est stocké à un endroit précis dans la mémoire de l’ordinateur. On peut connaître cet emplacement à l’aide de la fonction id. Les adresses mémoires sont le plus souvent indiquées sous forme hexadécimale. Pour obtenir ce format hexadécimal, nous utilisons la fonction hex.

hex(id(a))
'0x7fdc7802e930'

Cette adresse peut être convertie en adresse binaire à l’aide de la fonction bin.

bin(id(a))
'0b11111111101110001111000000000101110100100110000'

Interaction entre variables#

  • Attribuer la valeur de 1 à a

  • Attribuer la valeur de 2 à b

  • Afficher leur somme.

a = 1 
b = 2 
print(a + b)
3

On obtient bien le résultat attendu !

  • Attribuer la valeur de 1 à a

  • Attribuer la valeur de 2 à b

  • Créer une variable c qui contient la somme de a et b

  • Afficher c.

a = 1 
b = 2
c = a + b
print(c)
3

Différentes opérations sont possibles: l’addition, la soustraction, la multiplication, la division, la division entière, le reste de la division entière (aussi appelé le modulo) et l’exposant. Voici un script avec a=7 et b=5.

a = 7
b = 5 

print(a + b)   # addition
print(a - b)   # soustraction
print(a * b)   # multiplication
print(a / b)   # division
print(a // b)  # division entiere 
print(a % b)   # modulo 
print(a ** b)  # exposant
12
2
35
1.4
1
2
16807

Le résultat de la division de 7 par 5 donne 1.4. C’est un nombre décimal et on utilise le point comme séparateur de décimale (ne pas utiliser de virgule!). Un nombre décimal en Python est de type float, en comparaison avec les nombres entiers qui sont de type int, abbréviation de integer. Le float provient du fait que les nombres décimaux sont aussi appelés des nombres en virgule flottante. Ceci provient de la façon dont ces nombres sont stockés dans l’ordinateur.

a = 1
print(type(a))
<class 'int'>

De même, un nombre décimal est de type float.

b = 2.5
print(type(b))
<class 'float'>

Warning

Une erreur fréquente consiste à utiliser une virgule qu’un point pour séparer la partie entière de la partie décimale. Cela ne génère cependant pas une erreur dans la mesure où Python crée un tuple. Plus d’informations sur les tuples plus tard dans le cours.

Voyons maintenant comment afficher l’entièreté du calcul (et pas uniquement le résultat final). Nous allons donc afficher plusieurs éléments dans la fonction print. Ces éléments doivent être séparés par une virgule. Il y a 2 possibilités :

  • On fait référence à une variable et on souhaite en afficher le contenu.

  • On souhaite simplement afficher du texte. Dans ce cas, le texte doit être entre guillemets ou entre apostrophes.

a = 7
b = 5 

print(a, "+", b, "=", a + b)   # addition
print(a, "-", b, "=", a - b)   # soustraction
print(a, "*", b, "=", a * b)   # multiplication
print(a, "/", b, "=", a / b)   # division
print(a,"//", b, "=", a// b)  # division entiere 
print(a, "%", b, "=", a % b)   # modulo 
print(a, "^", b, "=", a** b)  # exposant
7 + 5 = 12
7 - 5 = 2
7 * 5 = 35
7 / 5 = 1.4
7 // 5 = 1
7 % 5 = 2
7 ^ 5 = 16807

Exemple : calcul de TVA#

  • Créez une variable taux_tva égale à 21%, soit 0.21.

  • Créez une variable htva égale à 1,000,000€

  • Affichez la valeur de htva

  • Calculez le montant de la TVA à payer et stocker le résultat dans tva_a_payer

\[ \text{tva_a_payer} = \text{taux_tva} * \text{htva} \]
  • Affichez tva_a_payer

  • Calculez le montant TVA comprise et stocker le résultat dans tvac

\[ \text{tvac} = \text{htva} * (1 + \text{taux_tva}) \]
  • Affichez tvac

taux_tva = 0.21
htva = 1000000
print("Chiffre d'affaires:", htva)
tva_a_payer = taux_tva * htva
print("TVA a payer:", tva_a_payer)
tvac = htva * (1+taux_tva)
print("TVAC :", tvac)
Chiffre d'affaires: 1000000
TVA a payer: 210000.0
TVAC : 1210000.0

Remarque

Lorsqu’on multiplie un integer par un float, on obtient un float.

Il est possible de convertir un float en integer à l’aide de la fonction int. La partie décimale sera perdue.

a = 1.4
print(a)
a = int(a)
print(a)
1.4
1

Inversément, il est possible de convertir un integer en float.

a = 1
print(a)
a = float(a)
print(a)
1
1.0

Séparateurs de milliers#

Pour les grands nombres, il est possible (mais pas obligatoire) d’inclure des _ comme séparateurs de milliers. Ce n’est pas obligatoire, mais ça rend la lecture du chiffre plus facile. Ce caractère ne sera toutefois pas affiché.

taux_tva = 0.21
htva = 1_000_000
print("Chiffre d'affaires:", htva)
tva_a_payer = taux_tva * htva
print("TVA a payer:", tva_a_payer)
tvac = htva * (1+taux_tva)
print("TVAC :", tvac)
Chiffre d'affaires: 1000000
TVA a payer: 210000.0
TVAC : 1210000.0

Contrôler le nombre de décimales affichées#

Pour contrôler le nombre décimales affichées, nous pouvons utiliser la fonction round. Cette fonction a besoin de deux informations: (1) le chiffre à arrondir, et (2) le nombre de décimales souhaitées.

a = 1 / 3
print(a)
0.3333333333333333

Nous pouvons utiliser la fonction round pour afficher la valeur avec 2 décimales.

a = 1 / 3
print(round(a, 2))
0.33

Règles à respecter#

Lorsque nous créons une variable, il y a quelques règles à respecter au niveau du nom:

  • Le nom d’une variable peut contenir des lettres, des chiffres, ou le caractère _.

  • Le nom d’une variable ne peut pas commencer par un chiffre. Ainsi, taux_tva_21 est un nom acceptable, alors que 21_pourcent ne l’est pas.

  • Python est sensible à la casse (case sensitive), ce qui implique qu’une lettre minuscule est différente d’une lettre majuscule. La variable a ne sera donc pas équivalente à la variable A.

  • Le nom d’une variable ne peut donc pas contenir d’apostrophe, raison pour laquelle nous avons créé la variable chiffre_affaires_htva, et pas chiffre_d’affaires_htva.

Ensuite, certains mots-clés (keywords) sont réservés; ils ne peuvent pas être utilisés comme nom de variable. Ces mots-clés ont une signification particulière et nous aborderons certains de ces mots-clés dans ce syllabus. Pour connaître la liste des keywords, nous pouvons écrire help(“keywords”).

help("keywords")
Here is a list of the Python keywords.  Enter any keyword to get more help.

False               class               from                or
None                continue            global              pass
True                def                 if                  raise
and                 del                 import              return
as                  elif                in                  try
assert              else                is                  while
async               except              lambda              with
await               finally             nonlocal            yield
break               for                 not                 

Les commentaires#

Dans le script précédent, l’opération qui est réalisée est indiquée sur la droite. Ce texte est précédé de #. C’est un commentaire.

Note

Un commentaire est un morceau de code qui ne sera pas exécuté.

Les commentaires sont des morceaux de code qui ne sont pas “lus” par le programme. Ils doivent commencer par le sigle #. Ils permettent d’expliquer le code. Ils permettent aussi d’éviter qu’un morceau de code soit exécuté. L’emploi des commentaires est une bonne pratique à adopter lorsqu’on réalise un code.

# Auteur: Christophe Desagre
# Cette ligne ne sera pas affichee
print('Cette ligne sera affichee.') # mais pas ce morceau
Cette ligne sera affichee.

Changer le contenu d’une variable#

Comme son nom l’indique, le contenu d’une variable est … variable. Une même variable peut donc contenir différentes valeurs au fur et à mesure de l’exécution du script.

a = 5
print("a =", a)
a = 6
print("a =", a)
a = 5
a = 6

Nous pouvons également changer le contenu d’une variable à partir de son contenu actuel. Par exemple, si la variable a contient la valeur 5, on peut ajouter une unité à cette variable pour que le contenu de cette variable devienne 6. Ceci se fait facilement via:

a = 5
print("a =", a)
a = a + 1
print("a =", a)
a = 5
a = 6

Interaction avec l’utilisateur#

Il est possible de faire interagir l’ordinateur et l’utilisateur. Dans l’image ci-dessous, l’ordinateur affiche le message “Please enter your name”. L’utilisateur répond “John”. Ensuite l’ordinateur lui répond “Hello John! And welcome!”.

Pour récupérer une valeur fournie par l’utilisateur, il faut utiliser input. Le résultat sera stocké dans la variable prenom

Warning

Si vous exécutez ceci dans IDLE, la question posée à l’utilisateur apparaît dans la console. Il faut y répondre et appuyer sur la touche return.

prenom = input("Please enter your name: ")
print("Hello", prenom, "! And welcome!")
Please enter your name: christophe
Hello christophe ! And welcome!

Par défault, la réponse fournie par l’utilisateur sera stockée sous forme de chaîne de caractères. Si la réponse à la question doit être stockée en tant qu’entier / nombre décimal, il faut utiliser int() / float().

age = int(input("Quel age as-tu ? "))
print("Age", age)
Quel age as-tu ? 20
Age 20
taille = float(input("Quelle est votre taille (en mètre) ? "))
print("Taille", taille, "m")
Quelle est votre taille (en mètre) ? 1.80
Taille 1.8 m

Modules#

Python est installé avec une série de modules supplémentaires. Ces modules contiennent des fonctionnalités supplémentaires.

Math#

Le module math permet d’avoir accès à des fonctions mathématiques. Dans un premier temps, nous devons importer le module.

import math

Ce module permet notamment d’avoir accès au nombre \(\pi\), au nombre d’Euler \(e\) ou à la fonction logarithmique.

p = math.pi
print(p)
3.141592653589793
e = math.exp(1)
print(e)
2.718281828459045

Le logarithme en base 10 du chiffre 100 est égal à 2 car:

\[ 10^2 = 100 \]
x = math.log(100, 10)
print(x)
2.0

Pour plus d’informations, consultez la documentation du module à l’adresse suivante: https://docs.python.org/3/library/math.html

Random#

Le module random permet de générer des chiffres aléatoires. La première instruction est d’importer le module.

import random

Dans ce module:

  • random.randint permet de générer des nombres aléatoires entiers. Lors de l’appel de la fonction, il faut indiquer la borne inférieure et la borne supérieure. Par opposition à range, le chiffre généré sera compris entre la borne inférieure incluse et la borne supérieure incluse également.

chiffre = random.randint(1, 10)
print(chiffre)
4

random.choice permet de choisir aléatoirement un élément dans une liste. Pour plus d’informations sur les listes, voir cette section

cours = ["Excel", "Python", "Fondamentaux"]

random.choice(cours)
'Fondamentaux'

OS#

Documentation officielle : https://docs.python.org/3/library/os.html

OS = operating system

import os
  • Dans quel dossier se trouve mon fichier ? (get current working directory)

os.getcwd()
  • Changer de dossier (change directory)

Il y a une différence dans la façon d’indiquer les chemins d’accès en fonction de l’ordinateur.

Mac

  • Utiliser un slash /

os.chdir('/Users/christophe/.../Documents/Cours/Python')

Windows

  • Utiliser un double backslash \

os.chdir('C:\\Users\christophe\\...\\Documents\\Cours\\Python')

Exercices#

Note: Pour chaque exercice, l’output attendu se trouve juste en dessous.

Exercice 1#

  • Afficher le message “Hello, World!”

print("Hello, World!")
Hello, World!

Exercice 2#

2.A#

  • Calculer et afficher le montant TVAC (tvac) sur base du montant HTVA (htva) et du taux de TVA (taux_tva).

\[ \text{TVAC} = \text{HTVA} \times ( 1 + \text{taux de TVA}) \]

Utiliser les valeurs ci-dessous:

  • htva: 1000

  • taux_tva: 0.21

htva = 1000
taux_tva = 0.21
tvac = htva * (1+taux_tva)
print(tvac)
1210.0

2.B#

  • Calculer et afficher le montant HTVA (htva) sur base du montant TVAC (tvac) et du taux de TVA (taux_tva).

\[ \text{HTVA} = \frac{\text{TVAC}}{(1 + \text{taux de TVA})} \]

Utiliser les valeurs ci-dessous:

  • tvac: 1210

  • taux_tva: 0.21

tvac = 1210
taux_tva = 0.21
htva = tvac/(1+taux_tva)
print(htva)
1000.0

2.C#

  • Calculer et afficher le taux de tva (taux_tva) sur base du montant TVAC (tvac) et du montant HTVA (htva).

\[ \text{taux de TVA} = \frac{\text{TVAC}}{\text{HTVA}} - 1 \]

Utiliser les valeurs ci-dessous:

  • tvac: 1210

  • htva: 1000

tvac = 1210
htva = 1000
taux_tva = tvac / htva - 1 
print(taux_tva)
0.20999999999999996

2.D#

  • Modifiez le script précédent de manière à afficher un chiffre arrondi à 2 décimales. Utilisez la fonction round dans la fonction print.

# calcul du montant HTVA 
tvac = 1210.0
htva = 1000.0
taux_tva = (tvac/htva) - 1
print(round(taux_tva, 2))
0.21

2.E#

  • Calculer et afficher le montant TVAC (tvac) sur base du montant HTVA (htva), du taux de TVA (taux_tva), et d’un taux de ristourne (taux_ristourne).

\[ \text{TVAC} = \text{HTVA} \times (1 - \text{taux de ristourne}) \times ( 1 + \text{taux de TVA}) \]

Utiliser les valeurs ci-dessous:

  • htva: 1000

  • taux_tva: 0.21

  • taux_ristourne: 0.05

Output attendu:

Le prix TVAC est egal a 1149.5

htva = 1000
taux_ristourne = 0.05
taux_tva = 0.21

ristourne = taux_ristourne * htva
htva = htva - ristourne
tva = htva * taux_tva
tvac = htva + tva 

print("Le prix TVAC est egal a", tvac)
Le prix TVAC est egal a 1149.5

Exercice 3#

  • Calculer et afficher l’indice de masse corporelle (imc) d’une personne de 75kg mesurant 1m80. Il se calcule grâce à:

\[ \text{IMC} = \frac{\text{poids}}{\text{taille}^2} \]

Utiliser les valeurs ci-dessous:

  • poids: 75

  • taille: 1.80

poids = 75 # poids en kg
taille = 1.80 # taille en metre
imc = poids / (taille ** 2)
print(round(imc, 2))
23.15

Exercice 4#

  • Calculer la longueur de l’hypothénuse d’un triangle rectangle à l’aide de la formule de Pythagore:

\[ a^2 + b^2 = c^2 \]

De cette formule, on peut donc déduire que:

\[ c = \sqrt{a^2 + b^2} \]

Utiliser les valeurs ci-dessous:

  • a: 3

  • b: 4

a = 3 
b = 4 
c = (a**2 + b**2)**0.5
print(c)
5.0

Exercice 5#

  • Calculer les racines d’un polynome du deuxième degré:

\[ f(x) = ax^2 + bx + c \]

Pour calculer les racines d’une fonction, il faut tout d’abord calculer le \(\Delta\):

\[ \Delta = b^2 - 4ac \]

Ensuite, si le \(\Delta\) est positif, ce qui est le cas dans cet exemple, les deux racines, \(r_1\) et \(r_2\) sont:

\[ r_1, r_2 = \frac{-b \pm \sqrt{\Delta}}{2a} \]

Calculer les racines du polynome \(f(x) = x^2 + 3x - 4\). Donc:

  • a: 1

  • b: 3

  • c: -4

a = 1
b = 3
c = -4

delta = b**2 - 4*a*c
rac1 = (-b - delta**0.5)/(2*a)
rac2 = (-b + delta**0.5)/(2*a)

print("Racine 1:", rac1)
print("Racine 2:", rac2)
Racine 1: -4.0
Racine 2: 1.0

Exercice 6#

  • Calculer et afficher:

    • le perimetre d’un carre (carre_perimetre)

    • l’aire d’un carre (carre_aire)

    • le perimetre d’un rectangle (rectangle_perimetre)

    • l’aire d’un rectangle (rectangle_aire)

    • le perimetre d’un cercle (cercle_perimetre)

    • l’aire d’un cercle (cercle_aire)

Le carre possede des côtés de 5cm (carre_cote)

Le rectangle possede une longueur de 6cm (rectangle_longueur) et une largeur de 3cm (rectangle_largeur)

Le cercle possede un rayon de 4cm (cercle_rayon)

Importer la librairie math pour avoir acces à la valeur de \(\pi\).

import math 

carre_cote = 5
rectangle_longueur = 6
rectangle_largeur = 3
cercle_rayon = 4

carre_perimetre = carre_cote * 4
carre_aire = carre_cote**2

rectangle_perimetre = (rectangle_largeur+rectangle_longueur) * 2
rectangle_aire = rectangle_largeur * rectangle_longueur

cercle_perimetre = 2 * math.pi * cercle_rayon
cercle_aire = math.pi * cercle_rayon**2 

print("Carre \tPerim.:", carre_perimetre, "\tAire:", carre_aire)
print("Rect. \tPerim.:", rectangle_perimetre, "\tAire:", rectangle_aire)
print("Cercle \tPerim.:", round(cercle_perimetre, 2), "\tAire:", round(cercle_aire, 2))
Carre 	Perim.: 20 	Aire: 25
Rect. 	Perim.: 18 	Aire: 18
Cercle 	Perim.: 25.13 	Aire: 50.27

Exercice 7#

  • Convertir une vitesse de 120km/h (v_kmh) en une vitesse exprimee en m/s (v_ms).

v_kmh = 120
v_ms = v_kmh * 1000 / 3600 
print(v_kmh, "km/h correspond a", round(v_ms, 2), "m/s.")
120 km/h correspond a 33.33 m/s.

Exercice 8#

  • Calculer et afficher le montant que vous obtiendrez dans 10 ans si vous placez 5,000€ à 6% sur un compte bancaire. Les intérêts sont composés, donc la formule est:

\[ X_T = X_0 * (1 + taux)^T \]

Utiliser les valeurs ci-dessous:

  • montant_initial: 5000

  • taux: 0.06

  • duree: 10

montant_initial = 5000
taux = 0.06
duree = 10

montant_final = montant_initial * (1 + taux)**(duree)

print("Montant final", round(montant_final, 2))
Montant final 8954.24