Memento Python Pour Enfants
Memento Python Pour Enfants
Memento Python Pour Enfants
25.1 Généralités
25.1.1 Help
Dans le module built-
built-in (automatiquement chargé au démarrage de Pyhton, voir plus
bas), il existe un système d’aide assez performant.
Tu es dans la console : tape
>>>help()
Entre le nom de n’importe quel module, mot clef, sujet pour obtenir de
l’aide sur l’écriture de programmes en Python ainsi que sur les
modules. Pour quitter cet utilitaire et retourner à l’interpréteur,
tape simplement « quit ».
Pour obtenir une liste des modules disponibles, mots clefs ou sujets,
tape "modules", "keywords", ou "topics". Chaque module affiche un
petit résumé de son usage ; pour lister les modules dont le résumé
contient un mot donné comme « spam », tape "modules spam".
Après essai il s’avère que ça ne marche pas dans Pyscripter, par contre si tu tapes
>>> help('modules')
ça marche très bien et tu obtiens la liste de tous les modules présents. Pour les infos
sur un module, tape
>>> import nomModule
>>> help(nomModule) ou help(nomModule.nomFonction)
ou encore
print 'Je suis beau' # on veut des preuves
Memento 315
On peut mettre plus d’un #, ça fera changer de couleur.
Sur plusieurs lignes : triple guillemets " " " ou triple apostrophe ' ' ' encadrent
plusieurs lignes (pas les mêmes couleurs suivant les éditeurs) :
" " " Ceci est un commentaire : situé juste après
une fonction, il servira de docstring, très utile" " "
Les mots réservés de Python et leur traduction (entre parenthèses le mot complet si
abrégé) :
exec eval
exécuter (evaluate)
évaluer
(execute)
316 Chapitre 25
entier : int()
int ou long()
long #n=125L, booléen : bool()
bool #True ou False
pas de max.
pseudo-réel : float()
float #12.5, max=1e302 complexe : complex()
complex #5+2j ; i pas utilisé.
Opérations
Mathématiques Evaluations
+ - * / # division flottante a == 10 # égalité mathématique
// #division entière (version <=2.7) a != b # différent de
% #modulo a > b # plus grand que (strict)
** # puissance a < b # plus petit que (strict)
a >= b # plus grand ou égal
Logique : not, and, or, in a <= b # plus petit ou égal
Les opérateurs de comparaison sont utilisables pour des tris alphabétiques. in est
valable sur les chaînes de caractère.
25.2.2 Structures de contrôle
Dans tous les cas on peut intercepter l’erreur à l’aide de la séquence try/except.
Voici un exemple de structure de bloc de gestion d’erreur :
instructions
try: En fait ça fonctionne comme un if.
instructions : on essaie un truc Les instructions d’erreur peuvent
except: être tracées sur plusieurs niveaux.
instructions en cas d’erreur
else:
instructions si tout va bien
suite du programme
Dans cet exemple, on a affiché un message d’erreur dans la console avec raise.
318 Chapitre 25
Calculs
Listes
Types
Chaînes
Fichiers et modules
input() Entrer une valeur au clavier. raw_input() Entrée au clavier (ce qu’on veut).
sa,
sa sb sont des objets chaînes (str
str)
str : pour obtenir les méthodes
Fonctions des chaînes disponibles, taper dir(str).
dir(str)
Les caractères sont des chaînes de longueur 1.
sa.count(sb Compte le nombre de fois où sb est dans sa entre les indices deb
,*deb,*fin) et fin.
fin
sa.replace(st_anc
Remplace les n premières apparitions de st_anc par st_nouv.
st_nouv
,st_nouv,*n)
sa.lsplit(*char) Supprime tous les 'blancs' ou caractère char si précisé dans sa.
sa
print St="%5.2f"
"%5.2f" %x +'' bisous’ affiche '3.14 bisous'
• permet d'écrire sur plusieurs lignes une commande qui serait trop longue pour tenir sur une
seule (cela vaut pour n'importe quel type de commande).
• La séquence \n
n dans une chaîne provoque un saut à la ligne.
• La séquence \'' permet d'insérer une apostrophe dans une chaîne délimitée par des
apostrophes. Même chose avec ", %, t (tabulation).
Instructions Action
'nomfichier
nomfichier'
nomfichier = nom de fichier valide ; attention aux erreurs
d’entrée/sortie (IOError).
f=open('nomfichier','rwb')
Paramètres : 'r' = lecture, 'w' = écriture, 'a' pour ajout, 'b' si
le fichier est binaire.
Une fonction est un morceau de code plus ou moins autonome servant soit à alléger
le code principal, soit plus généralement à effectuer une opération répétitive. Une
fonction est déclarée par le mot clef def et son nom se termine par :, de sorte que le
code de la fonction est incrémenté.
On peut passer des paramètres à une fonction, c’est-à-dire des valeurs fixes ou des
variables qui vont permettre à la fonction de s’exécuter :
Plusieurs paramètres peuvent être passés avec des valeurs par défaut ou pas :
nom='Laroche' bonjour()
def bonjour(prenom='Fred') : affiche
global nom bonjour Fred
age=45 Laroche tu as
90 ans
print 'bonjour', prenom, nom, 'tu as',2*age,'ans'
z=bonjour()
print z[0]+' a '+z[1]+' ans.'
25.4 Tkinter
a=w.create_line
create_line()
create_line b=w.create_oval
create_oval()
create_oval c=w.create_poly
create_poly(tags='
create_poly fred', Création des objets du
…) Canvas
Une fois un objet créé il reçoit un identificateur id (un entier) contenu dans la variable a, b ou c ; on peut
également lui affecter un tag (étiquette) ; plusieurs objets peuvent avoir le même tag (pratique pour
manipuler un groupe d’objets). On peut alors faire des modifications sur les objets à partir de leur id ou de
leur tag.
tag
w.coords(c, x1, y1, x2, y2, x3, y3, x4, y4) ou Modification des objets
w.coords('fred', x1, y1, x2, y2, x3, y3, x4, y4) ayant l’id c ou le tag
w.itemconfigure('fred', fill=couleurfond, fred.
outline=couleurbord, stipple=transparence)
Quand tout est dessiné, on attend les événements qui vont se produire…, événements liés à un widget.
Button Un « simple » bouton, utilisé pour exécuter une commande ou autre opération.
Graphique structuré : utilisé pour dessiner des figures ou des graphes ainsi que des
Canvas
widgets personnalisés. Nécessaire pour dessiner facilement.
Widget de contenu : peut avoir une bordure, un fond ; utilisé pour regrouper
Frame
d’autres widgets comme des boites de contrôle.
Représente une valeur d’une variable pouvant en prendre plusieurs. Une fois
Radiobutton
sélectionné réinitialise tous les boutons liés à cette variable.
Scrollbar Barre de défilement standard (utiliser avec canvas, entry, listbox, text).
Text Affiche un texte formaté, permet divers styles et attributs. Supporte les images.
Note : de nombreux widgets utilisent des classes de variables particulières comme IntVar,
StringVar, FloatVar…; par exemple le widget Checkbutton va utiliser un IntVar à déclarer comme
suit : u=IntVar(nom_fenetre,value=valeur_entiere_initiale)
On récupère / définit les données (ici un entier) avec une instruction du type :
u.get() / u.set()
328 Chapitre 25
25.4.3 Méthodes
grid Permet de créer une grille dont chaque case peut recevoir un objet, très utile si
grid_forget on a plusieurs widgets à placer. Options pour un objet : column, columnspan,
row, rowspan, sticky. Forget permet d’effacer le widget à l’écran.
pack Empaquetage des widgets dans un widget (ou la fenêtre) les uns au dessus des
pack_forget autres. Avec un seul widget permet d’actualiser l’affichage. 3 options : side,
expand, fill (110)
place Donne un emplacement explicite (coordonnées écran). Peut être utilisée avec grid
place_forget ou pack.
pack
Attention par contre à ne pas mélanger grid et pack dans la même application.
configure Commande permettant de modifier des options de n'importe quel widget déjà
placé sur l'interface. Exemple : pour changer la couleur d'un label,
nomwidget.configure(bg="blue",fg="white")
b=Button
Button(text
Button text=‘’Appuyer
text sur une touche’’) #définition du widget.
b.bind
bind('<Key>',
bind affiche_touche) #pas de paramètre à affiche_touche.
b.focus_set
focus_set()
focus_set # donne la main au bouton b.
<Key> N’importe quelle touche (y compris les flèches et autres touches muettes).
widget Identifiant (adresse mémoire) permettant d’accéder à l’objet ayant reçu l’évt.
create_rectangle Rectangle.