Introduction to Python [fr]¶
Cette page a servi de support pour les formations Python d’INP-net.
Préambule¶
Mémo syntaxe¶
for i in range(10):
if i % 2 == 0:
print("%s est pair !" % i)
else:
print("%s est impair !" % i)
La boucle for
parcours une liste d’éléments. range(10)
renvoie une liste avec 10 éléments : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
.
S’amuser avec Turtle¶
Pour une sympathique démonstration, taper ceci dans une console :
python -m turtle
Puis, pour vous amuser, exécutez python
dans une console, et tapez :
import turtle
turtle.forward(10)
Une fenêtre va s’ouvrir, avec votre tortue. Vous pouvez ensuite vous amuser avec turtle.forward
et turtle.right
ou turtle.left
.
Essayez de mettre des boucles for !
for i in range(1,1000):
turtle.forward(10)
turtle.right(1000 / float(i))
Épreuves¶
Épreuve 1¶
Trouvez la somme des nombres compris entre 10 et 1000 inclus, qui sont divisibles par 7.
Indice : utilisez le modulo (opérateur %
).
Trop facile ? Faites-le en une ligne !
Épreuve 2¶
Intro¶
Avant de vous lancer, téléchargez ce fichier : hp1.txt
. Essayez de comprendre et de jouer avec ce script :
import matplotlib.pyplot as plt
texte = open('hp1.txt').read()
mots = texte.split()
d = {'pierre': [], 'poudlard': [], 'flamel': [], 'dudley': []}
for i, mot in enumerate(mots):
for m, l in d.items():
if m in mot.lower():
l.append(i)
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
for i, (m, l) in enumerate(d.items()):
ax.plot(l, [1*i]*len(l), 'o', label=m)
plt.legend()
plt.draw()
plt.show()
Qui donne des résultats comme :
Épreuve¶
L’utilisateur donne un mot, et vous devez lui dire quels sont les mots qui suivent le plus souvent ce mot, dans Harry Potter 1.
Indice : Utilisez raw_input()
pour demander le mot et le récupérez. Utilisez les dictionnaires pour stocker un compteur pour chaque mot. La fonction sort()
pourra vous être utile à la fin.
Trop facile ? Découper les mots grace aux espaces, c’est sale. On se retrouve avec des mots contenant des virgules ou autre ponctuation. Faites un truc prope.
Épreuve 3¶
Vous vous rappelez du module « turtle » ? Faites un petit programme qui écoute sur le réseau, et permet à n’importe qui de déplacer la tortue sur votre écran, en envoyant des commandes simples.
Indice : Pour la programmation réseau, vous aurez besoin des « sockets ». Vous trouverez facilement des petits exemples sur le web. La commande « netcat » vous permettra de tester votre programme en vous connectant dessus.
Trop facile ? Supportez plusieurs connexions en même temps. Si vous êtes motivés, supportez-en des dizaines de milliers (oubliez les processus/threads).
Épreuve 4¶
Faites-donc un petit serveur web dynamique avec Flask, qui affiche le nombre d’utilisateurs connectés sur la machine.
Indice : Vous aurez besoin d’installer Flask, avec le système de virtualenv (pour les machines de l’N7). La commande w
vous permettra de connaître les utilisateurs connectés sur la machine.
Trop facile ? Ajoutez un formulaire sur votre page web, pour envoyer des messages à tous les utilisateurs connectés sur la machine !