Skip to main content Informatique en prépa - Lycée Malherbe 

1- Introduction au langage Python

Dans le cours d'ITC, on utilisera le langage Python.

image

Cette page suppose que vous débutez entièrement le Python. Si vous êtes à l'aise, vous pouvez la survoler rapidement.


I. Expressions et variables

a) Calculs simples

En python, vous pouvez faire des calculs simples en utilisant les opérateurs usuels : +, -, *, /, ** (puissance), // (quotient de la division euclidienne), % (reste de la division euclidienne, ou modulo).

La fonction py print(...) permet d'afficher le résultat d'un calcul. Par exemple, pour calculer 2 + 3 et afficher le résultat, vous pouvez écrire :

Python

Loading editor...

# Affiche le résultat de 2 + 3
print(2 + 3)
L'éditeur de code

Vous pouvez modifier le code dans la zone ci-dessus et cliquer sur le bouton "Run" pour exécuter le code et voir le résultat.

Exercice

En utilisant l'éditeur de code ci-dessus, affichez le résultat des opérations suivantes :

  • le reste de la division euclidienne de , par

En informatique, on appelle expression tout morceau de code auquel on peut donner une valeur. Ainsi, à l'intérieur de chaque py print(...), vous avez mis des expressions.

On les distingues des instructions, qui sont des morceaux de code qui ne donnent pas de valeur, mais qui font quelque chose. Par exemple, py print(...) est une instruction. En Python, une instruction correspond globalement à une ligne.

b) Variables et conditions

Bon, si le python était juste une calculatrice, on ne ferait pas un cours dessus. Il y a donc des fonctionnalités plus avancées.

Les variables sont des "boîtes" dans lesquelles on peut stocker des valeurs, et auquelles on donne un nom. Par exemple, pour créer une variable "taille", il suffit d'écrire : py taille = 1.75. On pourra utiliser ensuite le nom de la variable pour se référer à sa valeur, ou bien la modifier.

Python

Loading editor...

taille = 1.75
print(taille)
taille = 2 * taille
print(taille)
Opérateurs en-place

Pour chaque opérateur, il existe une version en place, c'est-à-dire qui modifie directement une variable. Ainsi, on peut écrire taille *= 2 à la place de taille = taille * 2.

De même avec +=, -=, %=, etc.

On peut également appliquer des conditions sur ces variables.

Python

Loading editor...

taille = 1.99
if taille > 1.80:
	print("Vous êtes plus grand.e que moi !")
elif taille == 1.80:
	print("Et la pareil")
else: 
	print("Et là....")

Le if (qui signifie "si" en anglais) est suivi d'une condition (entre parenthèses), puis de :, ce qui signale le début d'un bloc.

Le contenu de ce bloc doit être indenté, c'est-à-dire décalé d'un cran sur la droite (la touche "tab" avec les deux flèches en haut à gauche du clavier, permet de directement décaler le curseur d'un cran).

Pour signaler la fin du bloc, on se redécale d'un cran sur la gauche.

Si la condition est vérifiée, tout le contenu du bloc suivant le py if sera executé. Sinon, il sera simplement ignoré.

Lorsqu'on met un py if, on peut de manière optionelle ajouter d'autres directives :

Exercice

Écrivez un bloc de code qui, étant donné la variable "entier" que l'on suppose comprise entre 0 et 2, affiche le numéro correspondant en français.

Python

Loading editor...

entier = 1

#à compléter
Les types de données

On a principalement manipulé des nombres jusqu'à présent. Mais en pratique, chaque valeur a un type. Voici les principaux types de données :

  • Les entiers (int): de à exclu (c'est-à-dire qu'il n'y a pas de limite de taille, si ce n'est la taille de la mémoire de l'ordinateur).
  • Les flottants (float): il s'agit des nombres à virgule. Par défaut, vous pouvez considérer qu'il sont stockés à environ 10 chiffres significatifs.
  • Les chaines de caractère (string): il s'agit des lettres, des mots, des phrases ... Elles sont délimitées par des guillements ("..." ou '...'). Le + fonctionne sur les chaines de caractères.
  • Les booléens (bool): Ce sont des valeur spéciales, qui valent soit True ("vrai"), soit False ("faux").

Lorsque j'ai écris pour le py if, qu'il fallait une condition, cette condition est en fait un booléen, et donc on peut directement écrire ceci :

Python

Loading editor...

suisje_vrai = False
if suisje_vrai:
	print("Oui")
else:
	print("Non")
Manipulation de booléens

Comme on a +, -, *... sur les nombres, il existe un certain nombres d'opérateurs qui produisent des booléens :

  • and (et), or (ou) et not (non) permettent de combiner ou de modifier des booléens avec la logique usuelle.
  • == teste l'égalité entre deux valeurs de n'importe quel type, et renvoie vrai si elles sont égales. De même pour != (différent de), < et > (inférieur et supérieur), <= et >= (inférieur ou égal, supérieur ou égal).

Lorsqu'on combine tous ces opérateurs, il faut penser à bien parenthéser nos opérations !

Exercice

Complétez la condition suivante, pour que le code s'execute seulement si toutes ces conditions sont vérifiées :

  • A a au moins trois fois l'age de B
  • C est de couleur bleu
  • Parmis A et B, l'un des deux n'est pas de couleur bleu
Python

Loading editor...

age_A = 32
age_B = 5
age_C = 102
couleur_A = "rouge"
couleur_B = "bleu"
couleur_C = "bleu"
if ...: #remplacez les ... par votre condition
	print("la condition est vérifiée !")

II. Les boucles

Imaginez que vous vouliez utilisez Python pour calculer la somme des entiers de 1 à 100. Vous pouvez écrire le code suivant :


somme = 0
somme += 1
somme += 2
somme += 3
somme += 4
...
somme += 100
print(somme)

mais ça risque d'être un peu long.

À la place, on a inventé un truc super : les boucles.

a) Les boucles py for

On va voir deux types de boucles : py for et py while.

La boucle for tire son nom de l'expression pour ou pour chaque ... en anglais. Executez le code suivant et essayez d'en déduire ce qu'il fait :

Python

Loading editor...

for i in range(10):
	print(i)

Pour faire simple, lorsqu'on écrit py for variable in range(n):, suivi d'un bloc indenté, ce bloc se répétera pour chaque valeur entre 0 et n - 1, et la variable (souvent appelée i) prendra ces valeurs successives.

Fonctionnement avancé du

for En pratique, une boucle for parcours en faire une séquence d'élément.

Ainsi, on peut écrire for lettre in "bonjour": pour parcourir une à une les lettres de "bonjour".

Et range(n) représente en fait la séquence d'entiers allant de 0 à n-1 !

Python

Loading editor...

for lettre in "bonjour":
	print(lettre)
Fonctionnement avancé du

range range possède quelques fonctionnalités supplémentaires : plutôt que de toujours parcourir la séquence d'éléments de 0 à n-1, on peut :

  • choisir un point de départ : ainsi, range(8, 43) représente la séquence de 8 à 43 (le début est inclus et la fin exclue !)
  • parcourir les éléments de k en k (par exemple de 2 en 2) : range(0, 12, 3) parcourt les éléments de 0 (inclus) à 12 (exclus) de 3 en 3.
  • enfin, il est possible de parcourir les éléments dans l'ordre inverse, en écrivant range(11, -1, -1). Attention, si on veut s'arrêter à 0, il faut bien spécifier une fin à -1, vu que la fin est exclue !
Python

Loading editor...

print("De 3 en 3 : ")
for i in range(0, 10, 3):
	print(i)
print("Et à l'envers ! ")
for i in range(5, -1, -1):
	print(i)

b) Les boucles py while

Les boucles py for bouclent toujours un nombre prédéfini de fois : si on décide de boucler sur les entier de 0 à 43, on fera au maximum 43 tours de boucle.

Mais parfois, on a envie de boucler mais on sait pas combien de fois ! C'est le rôle de la boucle py while.

On va prendre l'exemple de la suite de syracuse dans cette partie. Elle est définie de la manière suivante :

La conjecture est la suivante : quelque soit , la suite fini par arriver sur , et boucle alors sur les valeurs .

On aimerais réaliser un programme python pour déterminer, pour un donné, combien d'étape il faut pour arriver à 1. Pour cela, il va falloir répéter des opérations un certain nombre de fois : c'est le travail d'une boucle. Mais avec une boucle py for, on est bloqué !

La boucle py while, elle, permet de continuer tant qu'une condition est vraie.

On écrit par exemple py while un > 1:, suivi d'un bloc de la même façon que pour py if et py for.

Attention aux boucles infinies !

La boucle while s'arrête uniquement lorsque la condition deviens fausse. Il est donc très important que cela arrive à un moment !

Il faut donc que

  • la condition dépende de variables
  • ces variables soient modifiés à l'intérieur de la boucle, jusqu'à rendre la condition fausse.
Exercice

Complétez le code suivant pour afficher le premier , tel que . Si la page semble planter, c'est que vous avez fait une boucle infinie ! Rechargez-là et recommencez.

Python

Loading editor...

#remplacer les ... par le code adapté
n = 0
u = 37
while u > 1:
  n ...
  if u % 2 == 0: #teste si u est pair
    u = ...
  else:
    u = ...
  print(u)
print("Terminé !", n)

c) Interrompre une boucle

Cette partie un petit peu annexe viens présenter deux mots-clés relatifs aux boucles : py break et py continue.

Python

Loading editor...

for i in range(10):
	if i == 5:
		break
	print("Tour de boucle numéro ", i)
Python

Loading editor...

for i in range(10):
	if i % 2 == 0: #si i est pair
		continue
	print("Tour de boucle numéro ", i)

III. Les fonctions

Dernière partie dans ce chapitre sur les bases du Python : les fonctions. Nous avons vu que les variables servent (entres autres) à pouvoir stocker une valeur pour la réutiliser plus tard.

Et bien les fonction, c'est un petit peu la même chose avec du code ! Vous avez en fait déjà utilisé des fonctions : py print(...) et py range(...) en sont. Leur code est défini une fois quelque part à l'intérieur du langage Python, et maintenant, à chaque fois que vous voulez afficher quelque chose, ou bien manipuler une séquence d'entiers, vous pouvez les utiliser. Comme elle sont pré-définies, on dit que ce sont des fonctions de la librairie standard.

Mais vous pouvez aussi défini vos propres fonctions, pour faire un peu ce que vous voulez !

Python

Loading editor...

def max(a, b):
	if a > b:
		return a
	else:
		return b

Décortiquons un petit peut ce qu'il se passe dans une fonction. Déjà, on commence toujours par py def nom_de_la_fonction(par1, par2, ...):.

Mais voilà : si vous executez le bloc ci-dessus, il ne se passe en apparence rien. En effet, nous avons simplement défini la fonction (d'où le "def"), c'est-à-dire qu'elle est désormais disponible dans notre code.

Vous pouvez en général considérer que tous les morceau de codes d'une page sont "reliés", dans le sens ou les variables et fonctions d'une partie seront disponibles sur les autres.

Bref, maintenant notre fonction définie, on peut l'appeler :

Python

Loading editor...

c = max(12, 85720)
print(c)

On a donc écrit le nom de la fonction, suivi de ses arguments : pour chaque paramètre dans la définition de la fonction, on lui fourni une valeur correspondante.

Le maximum entre nos deux arguments est alors renvoyé par la fonction, et on peut le mettre à l'intérieur d'une variable (ici c), et afficher cette dernière.

Exercice

Écrivez une fonction avg qui calcule et renvoie la moyenne entre 3 nombres.

Python

Loading editor...

#inserez votre fonction ici
m = avg(12, -4, 137.14)
print(m)