TD B1 : notion de variable¶

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 [ ]:
a = True
b = False
c = 3
d = 3.0
e = 2.72
f = "hyperbole"
g = "parabolïde de révolution à une branche"
In [ ]:
print(a, type(a))
# à compléter

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

  • a :
  • b :
  • c :
  • d :
  • e :
  • f :
  • g :

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 [ ]:
resultat1 = # à compléter

print(resultat1)

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 [ ]:
a = 1/3-5/4
b = 2/3+2
c = 4/5

resultat2 = # à compléter

print(resultat2)

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 approchées des variables précédentes

  • a :
  • b :
  • c :
  • d :
  • e :
  • f :
  • g :
  • h :
In [ ]:
# saisir ici les calculs de Q5 pour vérifier !

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 sont 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 : ...
  • aire : ...

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.

!!! 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 [ ]:
# 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 :

# ... à compléter

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

5. Avec des chaînes de caractères (type : str)¶

a) notion de chaîne de caractères¶

À la place des nombres, les variables peuvent aussi contenir des suites de caractères que l'on appelle chaîne de caractères.

ma_chaine = "Bonjour le monde !"

Le contenu de la variable ma_chaine est de type string et donc un type(ma_chaine) donnera un str (abréviation de string en Python).

À noter que la chaîne de caratcère est délimtée au choix par des guillemets ("...") ou des apostrophes ('...')

Q9. En utilisant judicieusement les guillemets et les apostrophes écrire un programme python qui affiche les messages:

Connaissez-vous le mot "cadonner" ?
L'informatique c'est amusant !

Plus décilat (chercher de l'aide sur le net ;-) ) comment afficher :

Savez-vous ce qu'est "l'astragale" ?
In [ ]:
# à compléter

b) le signe + et les chaînes de caractères¶

L'utilisation du signe + ne se limite pas à l'addition. Il est aussi utilisé pour la concaténation.

D'après Wikipédia :

« Le terme concaténation (substantif féminin), du latin cum («avec») et catena(«chaîne, liaison»), désigne l'action de mettre bout à bout au moins deux chaînes. »

Si on considère le programme suivant :

a = "Hello"
b = "World"
mon_expression = a + b

Q10. Créer deux variables, nommées nom et prenom contenant respectivement votre nom et votre prénom et créer ensuite une variable nommée etudiant qui contiendra la concaténation de votre prénom et de votre nom (attention de ne pas oublier l'espace), puis afficher son contenu avec la fonction print

In [ ]:
# code de la Q9 à compléter

Q11. On définit deux variables net ch

n = 5
ch = 'tic tac '

Essayer d'effecuter n*ch et n+ch pour voir ce qu'il se passe.

In [ ]:
# code pour la Q10 à compléter

Normalement vous devriez obtenir une erreur en tapant n+ch.

En effet ch est de type str alors que n est de type int. Le signe + représente-t-il une addition ou une concaténation ? Ni l'un, ni l'autre ! Python vous renverra une erreur car il ne peut pas concaténer un entier et une chaîne de caractère.

La solution : transformer le nombre entier contenu dans n en une chaîne de caractère : cela se fait à l'aide de la fonction str(...):

!!! note Méthode : transformer un nombre en chaîne Pour transformer une variable de type numérique en chaîne de caractère :

ch = 'nombre de pommes :'
n = 10
resulat = ch + str(n)

la variable resultat contiendra bien la chaîne nombre de pommes : 10 !!!

!!! warning Ressources supplémentaires Q12. Pour avoir plus de détails sur les variables, on pourra consulter avantageusement les pages consacrées à celles-ci sur le site W3 school. !!!

4. Exercice¶

Q13. 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".

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 [ ]:
d = 150*10**6 # distance terre-soleil en km
r = 700*10**3 # rayon du sooliel en km
pi = 3.14159  # nombre pi

bth = # à compléter
alpha = # à compléter
temps_disparition = # à compléter

print(temps_disparition)