TD B1 : notion de variable (types numériques)¶

C'est notre premier notebook. La première partie de ce travail consiste à prendre rapidement en main cette interface. Ensuite on travaillera sur la notion de variable.

I. Prise en main de l'interface¶

Un notebook est une suite de diverses cellules. Celles-ci peuvent contenir soit du texte (par exemple pour écrire les questions), soit du code python. Celui-ci est interactif et modifiable.

Dans la cellule ci-dessous on a saisi un code python valide. Exécuter cette cellule. Pour cela on commence par l'activer en positionnant le curseur à l'intérieur de celle-ci, puis l'exécution se fait au choix en cliquant sur le bouton Exécuter (en haut dans le menu) ou en appuyant sur les touches CTRL+ENTER.

In [ ]:
# Un code python valide

print("Bonjour")
print("everybody")
In [ ]:
# Un autre code python valide

print("Bonjour","everybody")

!!! abstract Remarque la fonction print peut recevoir autant d'arguments que l'on veut, on les sépare par des virgules, et ils s'affichent sur la même ligne. !!!

Dans la cellule suivante, on a cette fois-ci saisi un code python invalide. Exécuter pour voir.

In [ ]:
# Code python invalide

print("Tout va bien ?)

En lisant le message d'erreur, corriger la cellule précédente et exécuter à nouveau.

Les rudiments à retenir pour l'instant :

!!! abstract À retenir

  • Pour éxécuter une celle : bouton Exécuter ou raccourci clavier CTRL+ENTER
  • Pour insérer une cellule : aller dans le menu Insérer en haut de l'écran.
  • Pour supprimer une cellule : aller dans le menu Édition.
  • Vous avez la possibilité de récupérer la version initiale en cliquant sur le bouton Capytale en haut dans le menu et en choisissant retour version enseignant.
  • Penser en fin de séance à sauvegarder votre travail en cliquant sur le bouton disquette en haut à gauche. !!!

II. Notion de variable¶

1. La notion de type¶

Q1. Dans la cellule suivante on a créé plusieurs variables. Vous devez exécuter cette cellule, puis saisirez dans la cellule de code vierge qui la suit, les instructions python print(type(...)) pour chaque variable, afin d'en déterminer leur type. Puis vous complèterez la cellule réponse qui suit.

In [2]:
a = True
b = False
c = 3
d = 3.0
e = 2.72
f = "hyperbole"
g = "paraboloïde de révolution à une branche"
In [3]:
print(a, type(a))
print(b, type(b))
print(c, type(c))
print(d, type(d))
print(e, type(e))
print(f, type(f))
print(g, type(g))
True <class 'bool'>
False <class 'bool'>
3 <class 'int'>
3.0 <class 'float'>
2.72 <class 'float'>
hyperbole <class 'str'>
paraboloïde de révolution à une branche <class 'str'>

Réponses : les types des variables précédentes sont

  • a : bool
  • b : bool
  • c : int
  • d : float
  • e : float
  • f : str
  • g : str

2. Avec des types numériques¶

Q2. Dans la cellule de code ci-dessous, créer une variable resultat1 en lui affectant le résultat du calcul suivant, puis faire afficher son contenu avec la fonction print(resultat1) :

$$ \dfrac{\dfrac{1}{3}-\dfrac{5}{4}}{\dfrac{2}{3}+2}-\dfrac{4}{5} $$
In [4]:
resultat1 = (1/3-5/4)/(2/3+2)-4/5

print(resultat1)
-1.14375

Q3. On définit ci-dessous trois variables. Utiliser ces trois variables pour créer une variable resultat2 qui contiendra le résultat du calcul précédent et faire afficher son contenu pour comparer à resultat1.

In [5]:
a = 1/3-5/4
b = 2/3+2
c = 4/5

resultat2 = a/b-c

print(resultat2)
-1.14375

Q5. On donne les calculs suivants. Déterminer d'abord sans ordinateur le contenu de chacune des variables à la fin de l'exécution, puis vérifier avec l'ordinateur.

a = 5
b = 16
c = 3.14 / 2
d = b / a
e = b // a
f = b % a
g = a + b
h = a

Réponses : valeurs des variables précédentes

  • c : 1.57
  • d : 3.2
  • e : 3
  • f : 1
  • g : 21
  • h : 5
In [6]:
# saisir ici les calculs de Q5 pour vérifier !

a = 5
b = 16
c = 3.14 / 2
d = b / a
e = b // a
f = b % a
g = a + b
h = a

print(a,b,c,d,e,f,g,h)
5 16 1.57 3.2 3 1 21 5

3. Les variables ne sont pas liées¶

!!! warning Attention : les variables ne sont pas liées par exemple, si l'on saisit :

a = 1
b = a + 1
# b vaut 2 à ce stade
a = 5
# b n'a pas changé et vaut toujours 2

!!!

Q6. On considère un carré dont la longueur du côté est stockée dans la variable cote. On veut calculer son périmètre et son aire grâce au code suivant :

cote = 1 # longueur du côté du carré
perimetre = 4*cote # périmètre du carré
aire = cote*cote # aire du carré

cote = 2
print('perimètre', perimetre)
print("aire", aire)

Sans taper de code, dire combien valent les variables perimetre et aire à la fin du code ci-dessus ?

Réponses :

  • perimetre : 4
  • aire : 1

Q7. Insérer une cellule ci-dessous, puis recopier (sans faire de copier/coller) le code de Q6 et l'exécuter pour vérifier.

In [7]:
cote = 1 # longueur du côté du carré
perimetre = 4*cote # périmètre du carré
aire = cote*cote # aire du carré

cote = 2
print('perimètre', perimetre)
print("aire", aire)
perimètre 4
aire 1

!!! abstract À noter Dans la fonction print, lorsqu'un mot est entouré de « quotes » (sous la touche 4) ou de « guillemets » (sous la touche 3), le mot est écrit tel quel, s'il n'y en a pas, le mot doit représenter une variable, et c'est alors son contenu qui est affiché. !!!

4. Permuter deux variables¶

Q8. Dans la cellule de code ci-dessous, on définit deux variables a et b. On a utilisé une technique qui permet d'obtenir des valeurs aléatoires. Pour l'instant on ne cherche pas à comprendre cela, on le verra en détail prochainement :

Écrire un code qui intervertit les contenus respectifs de ces deux variables.

In [8]:
# les trois lignes suivantes affectent deux valeurs aléatoires aux variables a et b
from random import randint
a = randint(0,9)
b = randint(10,19)
print('a =',a)
print('b =',b)

# code pour intervertir les contenus de a et b :

a,b = b,a

# ou bien :
# aux = a
# a = b
# b = aux

print('a =',a)
print('b =',b)
a = 0
b = 16
a = 16
b = 0
Clic pour indication Penser à utiliser une variable auxiliaire...

III. Exercice¶

Q9. Lors d'une belle soirée d'été, Alice contemple un joli coucher de soleil. Alors que celui-ci arbore une superbe couleur rouge, celui-ci arrive dans une position tangente avec l'horizon. Elle se pose alors la question de savoir combien de temps reste-t-il avant que le soleil ne disparaisse totalement sous l'horizon en croisant les doigts pour voir se fameux mais hypothétique "rayon vert" (lien wikipedia).

image.png

Le point T représente la position d'Alice sur la Terre, et le segment [BC] représente la soleil vu en coupe.

On connait les valeurs suivantes :

  • la distance Terre-Soleil $TH = 150\times10^6\ km$
  • le rayon du soleil $CH = 700\times10^3\ km$
  • le temps mis par le soleil pour faire un tour complet de $2\pi\ radians:\ T = 24\ h$
  • $1\ h= 3600\ s$

Voici quelques lignes directrices :

  1. Déterminer la valeur de $\tan(BTH)$ grâce à la trigonométrie.
  2. L'angle BTH étant très petit, on pourra admettre qu sa mesure en radians est approximativement égal à sa tangente. En déduire la valeur de $\alpha$.
  3. Determiner le temps mis par le soleil pour parcourir l'angle $\alpha$.

On donne dans la cellule ci-dessous quelques variables, à vous de compléter le code pour créer la variable temps_disparition qui contiendra la valeur qui répond à l'interropgation d'Alice !

In [9]:
d = 150*10**6 # distance terre-soleil en km
r = 700*10**3 # rayon du soleil en km
pi = 3.14159  # nombre pi

bth = r/d
alpha = 2*bth
temps_disparition = 24*3600*alpha/(2*pi)

print(temps_disparition)
128.34265451570704