La feuille de calcul Jupyter (Jupyter Notebook en anglais) est divisée en cellules. Chaque cellule a une partie code et une partie résultat. C'est vous qui tapez le code et après avoir tapé Shift+Entré
l'ordinateur calcule le résultat.
Vous pouvez ajouter des cellules en cliquant sur la barre bleue qui apparait entre les cellules
Le premier programme écrit dans un nouveau langage informatique salue le reste du monde.
Recopiez et exécutez
print("Hello World!")
Tout langage de programmation sait calculer avec des nombres et avec les opérations usuelles. (Sage est capable de beaucoup plus).
À vous d'essayer.
Caculez 2+3
, 13*17
, 2^8
, 2**8
, 1/2+1/3
.
Si vous êtes en Python il faudra taper print(2+3)
.
Un ordinateur est beaucoup plus fort que vous pour mémoriser exactement des données.
x = 2/3 print ((1+x)/2)
La mémoire dure aussi longtemps que nécessaire.
essayez maintenant print (1-1/x)
On peut afficher, utiliser ou affecter une variable.
x = x + 3
Un ordinateur est aussi beaucoup plus efficace que vous pour répéter des instructions.
Il y a des boucles dont on connait a priori la longueur: for
. En Python la syntaxe est
for i in range(10): print iNotez que
i
est une variable (créée à la volée) c'est-à-dire une case de la mémoire réservée pour la valeur de i
.range(10)
est la liste des entiers de $0$ à $9$ inclusTab
Essayons de mélanger boucles et variables.
Calculons la somme des 100 premiers entiers:
somme = 0 for i in range(100): somme = somme + i print(somme)
Remarquez les différentes apparitions de la variable somme
: affection initiale, utilisation et affectation dans la boucle, affichage finale.
Essayez d'indenter la dernière ligne du programme pour constater la différence.
Vous vous souvenez de la formule de la somme des n
premiers entiers ? Vérifiez que votre programme ne s'est pas trompé.
Recopiez et modifiez le programme ci-dessus pour qu'il calcule la somme des $100$ premiers carrés.
Pour prolonger, afficher la somme des 20 premiers carrés.
Dans la fin de ce TP nous proposons de tester si un nombre est premier. 2019 est il premier ? Et 2021 ?
Python calcule le reste de la division euclidienne avec l'opérateur %
. Essayez print(2019%3)
. (Vous auriez pu vous en douter, non ?)
2021 est-il divisible par 3 lui ?
Pour un nombre n
, écrire une boucle qui affiche les diviseurs de n
:
n=2019 for i in range(1,n): if n%i == 0: print(i)
Remarquez le test: if
suivi de :
, l'instruction conditionnelle est indentée
Remarquez la syntaxe ==
qui est un opérateur qui renvoie True
ou False
.
Et maintenant 2021 est-il premier ?
Modifiez le programme pour qu'il n'affiche que la réponse à la question: n
est premier (ou pas). Il faudra utiliser une variable cumulative est_premier
que vous initialisez à True
et que vous remplacez par False
si vous trouvez un diviseur.
Revoyez l'utilisation de somme
ci-dessus.
Affichez tous les années qui sont des nombres premiers durant votre vie.