Programmer en Python en 2nde

Variables, opérateurs, saisie et affichage : les variables

Crédits

Toute la structure html/css/js et une grande partie du contenu ont été réalisés par Nicolas Buyle-Bodin professeur au lycée Lacassagne, avec l'aide de Jean-Manuel Mény, professeur au lycée de la plaine de l'Ain. Ils ont travaillé pendant plusieurs centaines d'heures pour créer un site de formation à destination des enseignants du secondaire de l'académie de Lyon d'une grande qualité visible sur le portail Mathématiques du site académique. Ils ont eu la gentillesse de placer leur code source sous licence Creative Commons BY-NC-SA Respect de la Paternité - Pas d'utilisation commerciale - Partage des conditions initiales à l'identique..

Nous les en remercions chaleureusement.

Variable et affectation

Une variable est l'association d'un espace de la mémoire de l'ordinateur, accessible par son nom, et d'une valeur que l'on y stocke. En Python on définit une variable par une instruction d'affectation, par exemple pour affecter la valeur 12 à la variable de nom a on écrit :


a = 12

Un langage de programmation fixe des contraintes pour les noms de variables. En Python les seuls caractères autorisés sont les caractères non accentués, les chiffres (sauf en première position) et le tiret bas (mais pas le tiret haut).


1var = 13     #nom incorrect
var1 = 13     #nom correct
var-1 = 14     #nom incorrect
var_1 = 14     #nom correct

Un langage de programmation n'accepte par défaut qu'un nombre fini de types de valeurs, ainsi une variable est caractérisée par son type accessible par la fonction type et qu'on peut afficher avec la fonction print.


In [3]: a = 12

In [4]: print(type(a))
<class 'int'>

In [5]: b = "Python"

In [6]: print(type(b))
<class 'str'>

In [7]: c = True

In [8]: print(type(c))
<class 'bool'>

In [9]: d = 3.14

In [10]: print(type(d))
<class 'float'>

Utiliser des variables

  1. Dans Pyzo, créer un nouvel onglet de l'éditeur de programme Python et l'enregistrer sur le disque dans le dossier Python2nde précédemment créé, sous le nom de fichier variables.py. On peut inclure la date du jour dans le nom de fichier, c'est pratique pour l'indexation.
  2. Dans une cellule Programme 1, écrire un programme qui calcule et affiche le nombre d'habitants possédant un téléphone portable en France en 2017, sachant que 94 % de la population française possédait alors un portable et que la France comptait 66 990 826 habitants.
  3. Ayrton parcourt 60 kilomètres à la vitesse moyenne de 80 km/h et 350 km à la vitesse moyenne de 110 km/h.
    Dans une cellule Programme 2, écrire un programme qui calcule et affiche les temps de parcours sur chaque partir du trajet et la vitesse moyenne d'Ayrton sur l'ensemble du trajet.
  4. Dans une cellule Programme 3, saisir les instructions suivantes :
    
    a = 2
    b = 3
    c = b
    b = a + b
    b = (b ** 2 - a ** 2 - c ** 2)/2
    
  5. Recopier, puis compléter le tableau d'évolution des variables ci-dessous au cours de l'exécution du Programme 3.
    Instruction Valeur de a Valeur de b Valeur de c
    a = 2
    b = 3
    c = b
    b = a + b
    b = (b ** 2 - a ** 2 - c ** 2)/2

		
		
  • Corrigé programme 1
  • Corrigé programme 2
  • Corrigé programme 3
Avec le programme suivant

taux = 0.94
habitants = 66990826
print(habitants * taux)
on obtient le résultat :
62971376.44
On rappelle que $v= \frac{d}{t}$ donc $t=\frac{d}{v}$. Avec le programme suivant :

d1 = 60
d2 = 350
v1 = 80
v2 = 110
t1 = d1 / v1
print("Temps de parcours de la première partie : ", t1)
t2 = d2 / v2
print("Temps de parcours de la seconde partie : ", t2)
t = t1 + t2
print("Temps de parcours total : ", t)
on obtient les résultats :
Temps de parcours de la première partie :  0.75
Temps de parcours de la seconde partie :  3.1818181818181817
Temps de parcours total :  3.9318181818181817

A la fin du programme, la variable b contient le produit des valeurs initiales des variables a et b.

En effet si on note $x$ la valeur initiale de a et $y$ celle de b, la valeur de b en sortie est $\frac{(x+y)^2-x^2-y^2}{2}=\frac{x^2+2xy+y^2-x^2-y^2}{2}=xy$.

Instruction Valeur de a Valeur de b Valeur de c
a = 2 2
b = 3 2 3
c = b 2 3 3
b = a + b 2 5 3
b = (b ** 2 - a ** 2 - c ** 2)/2 2 6 3

##Programme 2
naissance = 2001
date = 2018
print("Age : ", date - naissance)

Echanger les contenus de deux variables

  1. Créer dans le fichier variables.py une cellule Programme4.
  2. Saisir dans la cellule Programme4 les instructions suivantes :
    
    ##Programme 4
    x = 502
    y = 621
    x = y
    y = x
    
  3. Sans exécuter le code, prévoir les valeurs des variables x et y à la fin de l'algorithme puis vérifier en exécutant le code.
  4. Proposer une modification du code qui permette d'échanger les valeurs initiales des variables x et y .
  5. Dans une nouvelle cellule Programme5, saisir les instructions suivantes :
    
    		##Programme 5
    		x = 502
    		y = 621
    		x = (x + y)/2
    		y = 2 * x - y
    		x = 2 * x - y
    		

    Sans exécuter le code, prévoir les valeurs des variables x et y à la fin de l'algorithme puis vérifier en exécutant le code.

  6. Dans une nouvelle cellule Programme6, saisir les instructions suivantes :
    
    		##Programme 6
    		x = 502
    		y = 621
    		x = (x + y)/4
    		# à compléter
    		

    Compléter ce code pour qu'il échange les valeurs initiales des variables x et y

  • Corrigé programme 4
  • Corrigé programme 5
  • Corrigé programme 6

Pour échanger les contenus des variables x et y, on utilise une variable de stockage z.


# Programme 4
x = 502
y = 621
z = x
x = y
y = z

Le tableau d'évolution des variables ci-dessous permet de comprendre l'utilité de la variable de stockage.

Instruction Valeur de x Valeur de y Valeur de z
x = 502 502
y = 621 502 621
z = x 502 621 502
x = y 621 621 502
y = z 621 502 502

En Python, on peut effectuer une sorte d'affectation simultanée en utilisant la propriété de tuple unpacking, et c'est la manière la plus courante d'échanger les contenus de deux ou plusieurs variables. D'ailleurs le tuple unpacking peut être utilisé pour initialiser en une instruction plusieurs variables.


In [15]: x = 502

In [16]: y = 621

In [17]: x, y = y, x

In [18]: print(x, y)
621 502

In [19]: a, b, c = 501, 502, 503

In [20]: print(a, b, c)
501 502 503

In [21]: a, b, c = c, a, b

In [22]: print(a, b, c)
503 501 502

Le programme ci-dessous échange les contenus initiaux des variables x et y sans utiliser de variable de stockage.


##Programme 5
x = 502
y = 621
x = (x + y)/2
y = 2 * x - y
x = 2 * x - y

On peut le démontrer avec un tableau d'évolution des variables, en désignant les valeurs initiales de x et y par des paramètres $a$ et $b$.

Instruction Valeur de x Valeur de y
x = 502 $a$
y = 621 $a$ $b$
x = (x + y)/2 $\frac{a+b}{2}$ $b$
y = 2 * x - y $\frac{a+b}{2}$ $a$
x = 2 * x - y $b$ $a$

# Programme 6
x = 502
y = 621
x = (x + y)/4
y = 4 * x - y
x = 4 * x - y
print("x = ", x)
print("y = ", y)