Si un programme boucle indéniment, l'arrêter avec Ctrl-C.



Documents pareils
Initiation à la programmation en Python

Algorithmique avec Algobox

STAGE IREM 0- Premiers pas en Python

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Programmation C++ (débutant)/instructions for, while et do...while

1 TD 2 : Construction d'une chier Acrobat et envoi par

Télécharger et Installer OpenOffice.org sous Windows

Télécom Nancy Année

Chapitre 2 Devine mon nombre!

Compte-rendu de projet de Système de gestion de base de données

Recherche dans un tableau

KeePass - Mise en œuvre et utilisation

TP 1. Prise en main du langage Python

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Traitement de texte : Quelques rappels de quelques notions de base

I. Introduction aux fonctions : les fonctions standards

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Chapitre 4 Pierre, papier, ciseaux

Le langage C. Séance n 4

Vous y trouverez notamment les dernières versions Windows, MAC OS X et Linux de Thunderbird.

Ateliers Python+Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi?

Mettre à jour PrestaShop

Raja Bases de données distribuées A Lire - Tutoriel

Algorithmique avec Algobox

1. Utilisation du logiciel Keepass

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Sauvegarder automatiquement sa clé USB

Guide d'installation du connecteur Outlook 4

IBM SPSS Statistics Version 22. Instructions d'installation sous Windows (licence simultanée)

Apprendre à manipuler le clavier Médiathèque de Bussy Saint-Georges APPRENDRE A MANIPULER LE CLAVIER

Leçon 18 Coupes et sections

Leçons et exemples de programmation en Logo

Comment se connecter au dossier partagé?

SweetyPix, mode d'emploi

Ateliers Python+Qt : Premiers pas : S'installer pour PyQt... en quelques minutes sous Windows!

POUR ALLER UN PEU PLUS LOIN SUR UN TABLEUR. Version EXCEL

1. Introduction Création d'une requête...2

COPIER, COUPER, COLLER, SELECTIONNER, ENREGISTRER.


Pop-Art façon Roy Liechtenstein

IBM SPSS Statistics Version 22. Instructions d'installation sous Windows (licence nominative)

Création d'un questionnaire (sondage)

Tutoriel Drupal version 7 :

Navigation dans Windows

Guide de démarrage rapide Centre de copies et d'impression Bureau en Gros en ligne

Assistance à distance sous Windows

GesTab. Gestion centralisée de tablettes Android

Présentation du langage et premières fonctions

Table des matières. F. Saint-Germain / S. Carasco Document réalisé avec OpenOffice.org Page 1/13

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

TP 1 : 1 Calculs en binaire, octal et hexadécimal

Automatisation d'une Facture 4. Liste Déroulante Remises Case à cocher Calculs

Logiciel SCRATCH FICHE 02

"! "#$ $ $ ""! %#& """! '& ( ")! )*+

Tune Sweeper Manuel de l'utilisateur

Solutions informatiques

Le publipostage avec Open Office

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

PHPWEBSITE -Tutoriel image

Cours Langage C/C++ Programmation modulaire

Ref : Résolution problème d'accès aux supports de cours

Cours Informatique Master STEP

YAPBA M. Logiciel libre de suivi de vos comptes

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

LES TOUT PREMIERS PAS

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

SimpleOCR, un logiciel gratuit de reconnaissance de caractères

Utiliser Freemind à l'école

Interface PC Vivago Ultra. Pro. Guide d'utilisation

Guide plateforme FOAD ESJ Lille

Cours Apl 11 - Introduction à la gestion des écrans

Algorithmique et Programmation, IMA

Sage 50 Version 2014 Guide d installation. Sage Suisse SA

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Formulaire pour envoyer un mail

Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server

Pas-à-pas : activer WebDAV pour le partage des fichiers iwork sur ipad

Présentation de GnuCash

ACTIVITÉ DE PROGRAMMATION

Les chaînes de caractères

L informatique en BCPST

Installation et Réinstallation de Windows XP

Client Kiwi Backup : procédures d'installation et de mise à jour. Gilles Arnoult, Clément Varaldi

Comment congurer WinEdt pour L A TEX?

FAQ Trouvez des solutions aux problématiques techniques.

Dossier projet isn 2015 par Victor Gregoire

Dans la série. présentés par le site FRAMASOFT

POUR MAC Guide de démarrage rapide. Cliquez ici pour télécharger la version la plus récente de ce document

SCOLASYNC : Logiciel de gestion de flotte de «supports USB», synchronisation de fichiers.

Installation des caméras IP

GUIDE D UTILISATION CRÉER SON SITE WEB - PROJET RESCOL

Transcription:

INITIATION PYTHON 1. Environnement de programmation Python 1.1. Installer Python. Sous Windows, télécharger Python version 3 à l'adresse http ://www.python.org/download en cliquant sur "Windows x86 MSI Installer". Puis exécuter le logiciel d'installation. Sous Mac OS X, il semblerait que Python soit préinstallé. Sinon, on peut l'installer ou le mettre à jour à partir de la même adresse. Il y a des diérences importantes entre les versions 2 et 3 du langage Python. La documentation qui suit est celle de la version 3. Vériez que vous avez bien installé cette version. 1.2. Utiliser Python. Lancer l'interpréteur Python : dans le menu Windows, cliquer sur le programme IDLE. Dans la fenêtre "Python Shell" qui s'est ouvert : File/New Window. C'est dans cette deuxième fenêtre que vous allez saisir votre programme. Pas dans la fenêtre "Python Shell". Dans la nouvelle fenêtre qui s'est ouvert : File/Save As... (indiquez le nom et l'emplacement du chier qui contiendra votre programme ; donnez-lui le suxe.py). Saisissez votre programme. La coloration syntaxique permet de détecter les erreurs de syntaxe les plus supercielles. Pour sauvegarder : Ctrl-S. Pour lancer votre programme : F5. La fenêtre "Python Shell" devient la fenêtre active. C'est dans cette fenêtre qu'ont lieu les Entrées/Sorties de votre programme. C'est aussi dans cette fenêtre que s'achent les messages d'erreur. Pour les erreurs de syntaxe, revenir dans la fenêtre où vous avez saisi votre programme : le petit carré rouge qui y est apparu est en général juste après votre erreur de syntaxe. Pour les autres messages d'erreur, lire le libellé de la première erreur achée et relever le numéro de ligne indiqué. Dans la fenêtre où vous avez saisi votre programme : Alt-G puis saisissez le numéro de la ligne. Le curseur se positionne alors sur la ligne où s'est produit l'erreur. Si un programme boucle indéniment, l'arrêter avec Ctrl-C. 1.3. Debugger. Pour trouver les bugs commencez par rééchir. Si cela ne sut pas, ajoutez des "print" dans votre programme pour en suivre le déroulement. 2. Introduction au langage Python grâce à la tortue Le langage Logo a été inventé pour initier les enfants à la programmation. Une tortue parcourt l'écran en suivant les ordres qui sont donnés par l'enfant. Elle tient un crayon au bout de sa queue, de sorte que sa trajectoire s'ache à l'écran. Voici les principales instructions qui peuvent être données à la tortue : 1

2 Initiation Python 2.1. Mémento. clear(): eace l'écran forward(d): la tortue avance de d pixels backward(d): la tortue recule de d pixels goto(x,y): la tortue se déplace jusqu'au point de coordonnées (x,y) (Le repère est centré dans l'écran.) xcor(): fonction donnant l'abscisse de la position courante de la tortue, en pixels xcor(): fonction donnant l'ordonnée de la position courante de la tortue, en pixels left(a): la tortue tourne sur place de a degrés dans le sens trigonométrique right(a): idem dans le sens des aiguilles d'une montre circle(r,a): la tortue eectue un virage d'un angle a avec un rayon de courbure r ; si r>0 le virage s'eectue dans le sens trigonométrique, sinon il s'eectue dans le sens des aiguilles d'une montre ; si le deuxième paramètre est omis, elle eectue un looping complet up(): la tortue lève le crayon down(): la tortue abaisse le crayon 2.2. Prendre un bon départ. Python a été installé avec diérents modules, spécialisés dans diérentes tâches. Pour utiliser un module il faut commencer par l'importer. Ici notre programme va utiliser le module "turtle". Il doit donc commencer par "from turtle import *" sur la première ligne. Pour voir la tortue à l'écran, il faut lui donner une forme. Cela se fait avec l'instruction shape("turtle"). On peut ensuite dénir la taille de la fenêtre dans laquelle va se déplacer la tortue avec l'instruction screensize(l,h) où l et h sont les largeurs et hauteurs en pixels. Enn c'est une bonne habitude de commencer par eacer l'écran avec l'instruction clear(). L'encadré ci-après reprend ces quatre instructions par les quelles tous les programmes de ce tutoriel devraient commencer. from turtle import * shape("turtle") screensize(1000,1000) clear() Saisissez et exécutez ce premier programme. Si vous ne savez pas comment faire,reportez-vous au paragraphe 2.2. : utiliser Python. Pour fermer la fenêtre de la tortue, saisissez bye() dans la fenêtre "Python Shell". Si la taille de la fenêtre de la tortue ne vous convient pas, remplacez 1000 par une autre valeur. Sauvegardez chaque exercice dans un chier diérent. Certains exercices reprennent des programmes écrits auparavant. 2.3. Succession d'instructions. Pour donner plusieurs instructions successives à la tortue, il sut d'écrire ces instructions à la suite les unes des autres, en allant à la ligne à chaque fois, avec la même indentation. Exercice 1. Ecrire un programme qui trace un triangle équilatéral. S'aider du memento. S'assurer qu'à la n de l'exécution du programme la tortue est au même endroit et regarde dans la même direction. Cela facilitera certains exercices ultérieurs. 2.4. Variables. Exercice 2. Modier le programme précédent pour qu'il trace un triangle deux fois plus grand. Vous avez probablement dû faire 3 modications dans le programme précédent. En utilisant une variable, nous allons pouvoir réécrire le programme précédent de manière à pouvoir changer la taille du triangle en ne modiant qu'une seule ligne du programme. En Python comme dans la plupart des langages informatiques, les variables sont désignées par plusieurs lettres. C'est une bonne pratique d'en proter et de donner des noms évocateurs aux variables. Ici par exemple nous allons nommer notre variable longueur_côté. Pour demander à l'ordinateur de mettre une valeur dans une variable, on utilise l'instruction d'aectation. Ici par exemple, si on veut que la longueur des côtés de notre triangle soit de 30 pixels, on écrira : longueur_côté=30.

Initiation Python 3 Exercice 3. Modier le programme précédent en aectant une valeur à la variable longueur_côté au début du programme, puis en remplaçant dans les déplacements de la tortue chaque valeur numérique par longueur_côté. Vérier que maintenant on peut changer la taille du triangle en modiant une seule ligne du programme. 2.5. Instruction d'entrée. Nous allons utiliser l'instruction d'entrée input. Exemple : âge=int(input("entrez votre âge : ")) La fonction input a un argument, la chaîne de caractères "Entrez votre âge : ". C'est ce message qui sera aché dans la fenêtre "Python Shell" pour demander à l'utilisateur de saisir son âge. Lorsque l'utilisateur aura saisi son âge (supposons qu'il ait 17 ans) et frappé sur la touche Entrée, la fonction input retournera la chaîne de caractères "17". La fonction input retourne toujours une chaîne de caractères. Si nous avons besoin de l'âge sous la forme d'un entier, il faut appliquer la fonction de conversion int comme ici. Pour convertir une chaîne de caractères en un nombre réel, on aurait utilisé la fonction oat à la place de la fonction int. Exercice 4. Modier le programme précédent de manière à ce que la longueur du côté du triangle puisse être saisie par l'utilisateur. 2.6. Instruction de sortie. Pour acher un résultat, un programme peut utiliser l'instruction print(expr1,expr2,...) qui évalue les expressions expr1, expr2,... puis ache le résultat dans la fenêtre "Python Shell". Certaines de ces expressions peuvent être des chaînes de caractères entre guillemets. Exemple : print("la somme de 2 et 3 vaut",2+3) Exercice 5. Modier le programme précédent de manière à ce qu'il ache la hauteur du triangle en pixels. On n'utilisera pas de formule mathématique pour calculer cette hauteur. Il est plus simple d'acher l'ordonnée d'un de ses sommets quand la tortue s'y trouve. 2.7. Test. On utilise un test en respectant cette syntaxe : if <condition> : # Bloc d'instructions n 1 else : # Bloc d'instructions n 2 Si la condition est vériée, le programme exécute le bloc d'instructions n 1, sinon il exécute le bloc d'instructions n 2. Comme pour la boucle "tant que" la condition peut contenir des opérateurs de comparaison comme <, >, <=, >=, ==,!= et des connecteurs logiques comme and, or, not. Il est important que les blocs d'instructions soient indentés (décalés) par rapport au "if" et au "else". En Python, c'est l'indentation qui permet de délimiter les blocs d'instructions. La partie "else" est facultative. Exercice 6. Reprendre l'exercice précédent. Mais au lieu d'acher la valeur de la hauteur du triangle, on ache "Succès" lorsque cette hauteur est comprise entre 95 et 100 pixels, "Echec" sinon. En lançant le programme avec diérentes longueurs de côté, déterminer la longueur du côté d'un triangle dont la hauteur est comprise entre 95 et 100 pixels. 2.8. Boucle "pour". Exercice 7. Ecrire un programme qui trace la gure suivante :

4 Initiation Python Avez-vous tiré les leçons de l'exercice précédent? Il convient d'utiliser une variable qui contiendra la longueur du plus petit segment. Si vous appelez cette variable lg, alors toutes les longueurs s'exprimeront facilement à l'aide de lg. Elles vaudront 2*lg, 3*lg, 4*lg (comme avec votre calculatrice, la multiplication se note *). Après avoir éventuellement corrigé votre programme, vériez qu'on peut changer la taille de la spirale en changeant simplement la valeur de lg. Avez-vous remarqué que votre programme eectue 4 fois la même chose : une première fois avec des longueurs lg, une deuxième fois avec des longueurs 2*lg, une troisième fois avec des longueurs 3*lg, une quatrième fois avec des longueurs 4*lg. Pour éviter de recopier 4 fois la même chose, nous allons utiliser ce que nous appellerons une "boucle pour". Voici une version encore améliorée du programme : lg=20 for i in range(1,5) : forward(i*lg) left(90) forward(i*lg) left(90) Les lignes indentées sont répétées 4 fois : une première fois avec la variable i valant 1, une deuxième fois avec i valant 2, une troisième fois avec i valant 3 et une quatrième fois avec i valant 4. Pour obtenir ce résultat on fait précéder ces quatres lignes par "for i in range(1,5)" qui crée une variable i et lui donne successivement toutes les valeurs entières de 1 inclus à 5 exclus. Rentrez ce programme et testez-le. Exercice 8. Ecrire un programme qui trace la gure suivante, constituée de demi-cercles de plus en plus grands, en utilisant une boucle "pour". Comme l'indique le mémento, pour tracer un demi-cercle de rayon r, on utilise l'instruction circle(r,180). Exercice 9. Revenons à notre programme qui trace un triangle équilatéral. Repartez de la version expurgée de tout ce qui concerne la hauteur. Vous avez remarqué qu'il répète 3 fois les mêmes instructions. Simpliez-le en utilisant une boucle "pour". Dans ce dernier exercice, vous avez remarqué que la variable i (vous n'êtes pas obligé de l'appeler i dailleurs) n'est pas utilisée à l'intérieur de la boucle. Ainsi une boucle "pour" peut être utilisée pour répéter plusieurs fois exactement les mêmes instructions. 2.9. Boucle "tant que". Dans une boucle "tant que", les instructions indentées sont répétées tant que la condition indiquée après le while est vériée. Cette condition peut contenir des opérateurs de comparaison comme <, >, <=, >=, ==,!= et des connecteurs logiques comme and, or, not. A titre d'exemple le programme suivant ache les carrés parfaits inférieurs à 700. i=0 while i*i<700 : print(i*i) i=i+1 Exercice 10. Ecrire un programme qui fait avancer la tortue de 150 pixels, la fait tourner de p q 360, fait avancer la tortue de 150 pixels, la fait tourner de p q 360, fait avancer la tortue de 150 pixels, la fait tourner de p q 360 etc jusqu'à ce que la tortue soit revenue à son point de départ. p et q sont des entiers

Initiation Python 5 saisis par l'utilisateur du programme. Commencer par tester p = 3 et q = 5. Puis expérimenter diérentes valeurs de p et q. Attention : les fonctions xcorr et ycorr produisent des coordonnées réelles et à cause des erreurs d'arrondie (auxquelles aucun ordinateur n'échappe) la tortue ne revient pas exactement au point de coordonnées (0 ;0). La fonction int, qui arrondit un réel à l'entier le plus proche, pourra donc être utile pour éviter que le programme ne se poursuive indéniment. 2.10. Variable mathématiques / Variables informatiques ; Egalité / Aectation. Les variables mathématiques ne changent jamais de valeur alors que les variables informatiques changent en général de valeur pendant que le programme s'exécute. Pour modier la valeur d'une variable informatique, on utilise une instruction d'aectation de la forme : nom_de la variable=expression. L'expression est évaluée puis le résultat de cette évaluation est aecté à la variable. Pour augmenter la valeur de la variable x de 1, on écrira donc x=x+1. On voit bien que ce = n'a pas la même signication qu'en mathématiques où x=x+1 serait faux. L'équivalent en Python du = mathématique est le == qu'on peut utiliser dans une condition à tester (test, boucle "tant que"). 2.11. Procédures. Vous n'avez sans doutes pas envie, à chaque fois que vous voulez tracer un triangle, de réexpliquer à la tortue comment faire. Vous voudriez lui apprendre une bonne fois pour toutes comment faire, et qu'elle s'en souvienne ; de manière à pouvoir simplement lui dire "trace une triangle". C'est à cela que servent les procédures. Nous allons créer une procédure qui trace un triangle. Voici la syntaxe à respecter. def triangle() : # Copier ici les instructions qui tracent # le triangle en les indentant. A cette occasion nous découvrons comment mettre des commentaires dans un programme, c.a.d. du texte libre qui ne sera pas pris en compte à l'exécution du programme : tout ce qui est entre # et la n de la ligne est un commentaire. Pour l'instant nous n'avons fait que dénir la procédure triangle. La dénition se termine lorsqu'on revient à une indentation nulle. Pour que la tortue trace eectivement un triangle, il faut lui en donner l'ordre avec l'instruction triangle() sans indentation. En jargon informatique, on dit qu'on appelle la procédure. Testez-le. On aimerait être plus précis et pouvoir dire à la tortue : "trace un triangle de 150 pixels de côté". Pour cela, on va ajouter une argument à notre procédure : def triangle(longueur_côté) : # Copier ici les instructions qui tracent # le triangle, en supprimant l'affectation # d'une valeur à la variable longueur_côté. # Et voici l'appel de la procédure qui précise # la taille souhaitée. triangle(150) Testez-le. Exercice 11. Ecrire un programme qui trace un hexagone comme celui ci-dessous en utilisant notre procédure "triangle" et une boucle "pour". Avant de faire cet exercice, vériez bien qu'à la n de votre procédure traçant un triangle, la tortue est revenue à son point de départ et regarde dans la même direction qu'avant l'appel de la procédure. Cela facilitera votre réexion pour cet exercice.

6 Initiation Python 2.12. Fonctions. Une fonction est une procédure qui "retourne" (jargon informatique) une valeur. Dès qu'une procédure rencontre une instruction "return" suivie d'une expression, elle évalue l'expression et s'interromp immédiatement en "retournant" le résultat de cette évaluation. Vous comprendrez mieux sur cet exemple. La fonction plus_grand retourne le plus grand de ses arguments. Quel nombre ache ce programme? def plus_grand(a,b) : if a<b : return b else : return a print(plus_grand(3,7)-plus_grand(9,2)) Exercice 12. Au début de votre programme qui dessinait une spirale, dénissez une fonction dist, sans arguments, qui retourne la distance en pixels de la tortue au centre de l'écran (point de coordonnées (0,0)). Vous aurez besoin de la fonction sqrt qui se trouve dans le module math qu'il vous faudra importer avec "from math import *". Lorsque la tortue a ni de tracer sa spirale, achez sa distance au centre de l'écran en "appelant" la fonction que vous avez dénie.