Sup 8xx - Lycée du parc TP Python
Découverte de Python
Les 11 et 18 septembre 2013 - http://www.mp933.fr/ - [email protected]
Buts de la séance
Découvrir Python : en mode «interprété ligne à ligne» et en mode «exécution d’un fichier».
Savoir utiliser Python comme une calculatrice.
Comprendre les notions de variable et d’affectation.
Découvrir les notions de boucle et de test.
Dans la section «Pour ceux qui s’ennuien, ceux connaissant déjà Python trouveront de quoi s’occu-
per. Ils vérifieront tout de même qu’ils savent faire tous les autres exercices, et écouteront l’orateur avec
la plus grande attention quand celui-ci agitera les bras.
1 Différents environnements
1.1 Idle
Exercice 1 On se lance
Lancer Idle2.7 ; taper les lignes suivantes dans la fenêtre «Python shell» (elles sont en fait précées
du «prompt» >>>) :
10+10
123**17
1789/2
1789//2
1789/2.
1789//2.
x
x=10
x
x+5
x
x=x+2
x
print x
x**17
print x**17
On pourra déjà retenir :
Python sait calculer !
Les puissances sont obtenues via **
Pour les divisions, c’est plus subtil : les opérateurs /et // semblent faire la division euclidienne/entière 1.
La notation «2.» désigne anifestement quelque chose de différent de «2».
On peut visiblement manipuler des entiers «arbitrairement grands».
On peut stocker une valeur dans une «variable»... ceci sera développé plus loin dans ce TD.
On peut aussi utiliser Idle en mode «travail dans un fichier» (qui est conseillé dès qu’on veut faire
autre chose qu’un ou deux calculs).
Exercice 2 CTRL - N ; CTRL - S
1. Depuis le «Python shel, ouvrir une «nouvelle fenêtre» (via le menu «Fichiers/File»).
2. Sauvegarder IMMÉDIATEMENT sous «tp01.py» par exemple.
1. On verra plus loin que c’est légèrement plus subtil, pour des histoires de version de Python.
1
3. Dans ce fichier, tapez les choses suivantes :
foo
4. Sauvez (CTRL - S), et lancez l’exécution via la touche F5 («Run module»).
5. Modifiez le fichier ; sauvez, exécutez !
Au fait, et par anticipation :
Monsieur, ça vaut le coup de sauver, alors qu’on a encore rien écrit ?
Oui. C’est comme ça ; et on ne discute pas.
Monsieur, je peux mettre des caractères sympas dans le nom de fichier ? Genre des accents, ou des
arobas ?
Non. C’est comme ça ; et on ne discute pas.
Rha quand même, au moins des espaces ?
Non, c’est comme ça, et on ne discute pas.
Oui mais l’année dernière...
Ben retourne en terminale alors.
Oui mais dans une autre classe...
Pas de chance, tu es tombé dans la mauvaise classe.
Oui mais j’ai un mac.
– Super.
Oui mais...
ASSEZ !
Ces points de vue sont peut-être un peu extrèmes/discutables. Le jour où vous rencontrez quelqu’un qui a
déjà écrit plus de 1000 lignes dans un programme, l’a fait tourner sur plusieirs machines, et vous donne
un avis contraire, alors écoutez-le (il assurera le SAV). Ces consignes ne s’appliquent pas pour choisir
le nom d’un fichier Word... ou même (pour être honnête) un programme python destiné à périr corps et
biens sitôt le TD terminé. Mais prenez tout de suite de bonnes habitudes !
1.2 Vs Idle
Il existe deux versions de python qui sont actuellement développées. Elles sont très largement com-
patibles... mais pas complètement ! En pratique, un développeur préférera telle ou telle version, mais il
semble raisonnable de connaître les distinctions principales. D’ici la fin de la taupe, vous choisirez en
toute liberté... la version indiquée par votre professeur !
Exercice 3 WTF ?
Lancer Idle3.2 ; taper les lignes suivantes.
des divisions
Bon, outre la question de la division entière/flottante,
1.3 Vs Spyder
Vous disposerez également de l’environnement de travail Spyder : plus sexy, mais plus long à se
lancer !
Exercice 4 Pareil, mais en mieux
Lancer Spyder. Tester le shell, puis créer un nouveau fichier, le sauvegarder, et l’exécuter avec F5. Ouvrir
un autre fichier python déjà existant. Pour continuer la découverte de fonctionnalittés «de base», vous
pouvez tester ceci :
sum(1,3,5)
sum([1,3,5])
range(4)
sum(i**2 for i in range(4))
Le principal défaut est en fait qu’il n’est pas porté sous python3.* à ce jour, ce qui pourra poser des
problèmes plus tard. Ceux qui tiennent à cet environnement de travail sont priés de vérifier de temps en
temps qu’ils savent utiliser Idle, ou un autre environnement sur lequel python3.x est porté.
2
1.4 Do it yourself
Bon, voyons si ce qui précède est compris...
Exercice 5 La prochaine fois, vais-je nommer mon fichier TP No 2.py ou plutôt tp02.py ?
Exercice 6
Exercice 7 Project Euler ; problem 6
The sum of the squares of the first ten natural numbers is,
12+ 22+· · · + 102= 385
The square of the sum of the first ten natural numbers is,
(1 + 2 + ·+ 10)2= 552= 3025
Hence the difference between the sum of the squares of the first ten natural numbers and the square of
the sum is 3025 385 = 2640.
Find the difference between the sum of the squares of the first one hundred natural numbers and the
square of the sum.
Exercice 8 Project Euler ; problem 48
The series, 11+· · · + 1010 = 10405071317.
Find the last ten digits of the series, 11+ 22+ 33+· · · + 10001000.
2 Variables, affectations
Exercice 9 tip-tip-tip
Exécuter les commandes suivantes ; essayer de comprendre ce qui se passe... voire d’anticiper. Écouter
ensuite les explications !
sf
smkogj
qsmgrj
sldfg
x=y, y=z, z=3, (x,z)=(4,5)...
Exercice 10 Réservé aux experts
Le fonction id jh
3 Premiers tests ; premières boucles
3.1 Des boucles...
Il s’agit d’effectuer des tâches répétitives mais correspondant à un motif général bien défini, un peu
comme dans une somme : 42+52+62+· · · +202+212contient les termes de la forme k2(premier point),
pour kpartant de 4(deuxième point) jusqu’à 21 (dernier ponit) ; on le résumera :
21
P
k=1
k2.
Préparer le premier TP Python
Le faire avec le premier groupe
Le faire avec le second groupe
Le faire avec le troisième groupe
Préparer le premier TP Python
Le faire avec le premier groupe
Le faire avec le second groupe
3
Le faire avec le troisième groupe
– ...
– ...
– ...
Préparer le quinzième TP Python
Le faire avec le premier groupe
Le faire avec le second groupe
Le faire avec le troisième groupe
L’informaticien va plutôt traduire cela :
Pour k allant de 1 à 15 :
- Préparer le TP numéro k
- Le présenter au groupe numéro 1
- Le présenter au groupe numéro 2
- Le présenter au groupe numéro 3
Ou encore :
Pour k allant de 1 à 15 :
- Préparer le TP numéro k
- Pour g allant de 1 à 3 :
Présenter le TP numéro k au groupe numéro g
Ainsi, la boucle «for» est un peu l’équivalent informatique des Pen maths :
Exercice 11 Comparer ...
Pour k allant de 1 à 15 :
Préparer le TP numéro k
Pour k allant de 1 à 15 :
Pour g allant de 1 à 3 :
Présenter le TP numéro k au groupe numéro g
En python, voici quelques exemples simples sur le même schéma. Tapez-les dans votre fichier tp01.py
que vous exécuterez ensuite.
Ceux vraiment lents pour taper au clavier... peuvent se contenter de taper les premières lignes (ben
oui, il va bien falloir, pour progresser !) puis aller chercher le fichier généreusement fourni, et faire des
copier/coller.
for k in range(5):
print k
for k in range(5):
print k
print "hop"
print "------"
for k in range(5):
print str(k)+"\t hop\n---"
for k in range(1,16):
print "Préparer le TP numéro "+str(k)
for g in range(1,4):
print " Faire le TP numéro "+str(k)+" avec le groupe numéro "+str(g)
for k in range(1,16):
print "Préparer le TP numéro "+str(k)
for k in range(1,16):
for g in range(1,4):
print " Faire le TP numéro "+str(k)+" avec le groupe numéro "+str(g)
4
explication de range, print, str, tab et newline. Syntaxe général ; évocation de while
Exercice 12 Mes premières boucles
dkgh
3.2 et des tests
Le rôle des tests est de choisir, à un instant donné, le comportement à suivre, en fonction d’une
certaine condition. Un point crucial est qu’au moment où on écrit le test, on ne sait PAS si la condition
sera vérifiée. C’est au moment de l’exécution que la condition sera évaluée et que le branchement 2aura
lieu
Exercice 13 Analyser les phrases suivantes. Faire un petit schéma illustrant les possibilités.
S’il pleut, alors je prends mon parapluie.
S’il y a (un fromage) alors j’en prends ; s’il y a (un dessert) alors j’en prends puis je prends ensuite
un café.
S’il y a (un fromage) alors j’en prends ; s’il y a (un dessert) alors j’en prends. Je prends ensuite
un café.
S’il y a (le fromage) alors j’en prends ; sinon, s’il y a (un dessert) alors j’en prends. Je prends
ensuite un café.
S’il y a (le fromage) alors j’en prends ; sinon, s’il y a (un dessert) alors j’en prends, et sinon je
prends un café.
S’il y a une côte rotie, j’en commande une. Sinon, s’il y a un pauillac, j’en commande un ; sinon,
je fais un scandale.
if then (if then ) else
if then (if then else) else
if then (if then else)
En Python, ça donnerait plutôt :
dfjkg
La syntaxe d’un test est donc :
Exercice 14 Des tests
foo
3.3 Do it yourself
Exercice 15 Project Euler ; problem 1
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of
these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.
4 Pour ceux qui s’ennuient
Vous connaissez la programmation dynamique ? Il s’agit grosso-modo de calculer une quantité en
exploitant une relation de récurrence/induction assez forte. La programmation dynamique est en général
associée à la memoïzation : on stocke les valeurs dans un tableau dès qu’elles ont été calculées... et on
réfléchit à un ordre pertinent pour calculer les différentes quantités.
Dans le premier exemple, on peut «compliquer» le problème en cherchant le nombre de chemin de
(0,0) vers (p, q), et ce nombre ϕ(p, q)vérifie alors une relation assez simple...
2. Le terme «branchement» devient à la mode.
5
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !