TP2 : Prise en main de Python

Documents pareils
Initiation à la programmation en Python

TP 1. Prise en main du langage Python

Découverte de Python

Présentation du langage et premières fonctions

STAGE IREM 0- Premiers pas en Python

Cours d algorithmique pour la classe de 2nde

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Représentation d un entier en base b

Algorithmique et Programmation, IMA

PROJET ALGORITHMIQUE ET PROGRAMMATION II

TP1 : Initiation à Java et Eclipse

L informatique en BCPST

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

LES DECIMALES DE π BERNARD EGGER

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)

1 Introduction et installation

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Utiliser ma messagerie GMAIL

TP1 : Initiation à l algorithmique (1 séance)

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

2 Comment fonctionne un ordinateur, dans les grandes lignes

Plus petit, plus grand, ranger et comparer

Chaque ordinateur est constitué de différentes unités de stockage de données (Disque dur, Graveur ) que l on peut imaginer comme de grandes armoires.

Chapitre 1 Qu est-ce qu une expression régulière?

Document d accompagnement pour l utilisation du Cartable en ligne Lycée des Métiers Fernand LÉGER 2013/2014

TP1 - Prise en main de l environnement Unix.

1 - Se connecter au Cartable en ligne

1 Recherche en table par balayage

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Service des ressources informatiques - Conseil Scolaire de District Catholique Centre-Sud Page 1

Initiation à l algorithmique

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

DM 1 : Montre Autoquartz ETA

Les chaînes de caractères

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Raisonnement par récurrence Suites numériques

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Outils pour la pratique

Algorithmique et programmation : les bases (VBA) Corrigé

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Chapitre 2 Devine mon nombre!

MODE OPERATOIRE OPENOFFICE BASE

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

1. Ouvrir Internet Explorer Faire défiler une page Naviguer dans un site Internet Changer d adresse Internet (URL) 2

Langage Java. Classe de première SI

Initiation à Excel. Frédéric Gava (MCF)

Introduction à MATLAB R

Cours de Probabilités et de Statistique


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

ALGORITHMIQUE ET PROGRAMMATION En C

Vérification de programmes et de preuves Première partie. décrire des algorithmes

Description pas à pas des différents processus d installation, configuration, saisie des résultats et export des données.

EXCEL TUTORIEL 2012/2013

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

TP1. Outils Java Eléments de correction

Cours 1 : La compilation

Algorithmes récursifs

TP1 : Initiation à Java et Eclipse

Saisissez le login et le mot de passe (attention aux minuscules et majuscules) qui vous ont

Introduction au langage C

Algorithme. Table des matières

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

CAPTURE DES PROFESSIONNELS

Quelques algorithmes simples dont l analyse n est pas si simple

Introduction à l informatique en BCPST

TD3: tableaux avancées, première classe et chaînes

Vous revisiterez tous les nombres rencontrés au collège, en commençant par les nombres entiers pour finir par les nombres réels.

Approche Contract First

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Bases de programmation. Cours 5. Structurer les données

La saisie d un texte

Bases de données élémentaires Maude Manouvrier

Le Logiciel de Facturation ultra simplifié spécial Auto-Entrepreneur

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Vue d ensemble de Windows PowerShell

Excel 2007 Niveau 3 Page 1

Notions fondamentales du langage C# Version 1.0

AGRÉGATION «ÉCONOMIE ET GESTION»

TD3 - Facturation avec archivage automatisé

Fibonacci et les paquerettes

Chap III : Les tableaux

Encryptions, compression et partitionnement des données

Cours d Informatique

ACTIVITÉ DE PROGRAMMATION


AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

Python - introduction à la programmation et calcul scientifique

Examen Médian - 1 heure 30

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

Comment automatiser la création d index multiples avec Word Paul-Henri Dumas - URFIST

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Qu est-ce qu une probabilité?

Transcription:

TP2 : Prise en main de Python L objectif principal de ce premier TP est de présenter sommairement Python. C est un langage de programmation informatique (au même titre que le langage C, ou C++, ou Java, ou le langage de programmation de votre calculatrice... ). C est par son intermédiaire que nous verrons les bases de l algorithmique cette année. Découvrir Pyzo Python est un langage de programmation ; ce n est donc ni un logiciel ni un programme. Cette année, nous utiliserons Pyzo comme environnement de travail pour commencer à programmer en langage Python. Vous pourrez le télécharger gratuitement à l adresse suivante : http://www.pyzo.org/ A l ouverture, s ouvre un mini-guide décrivant l environnement dans lequel vous allez travailler. Vous arrivez ensuite sur la fenêtre d accueil suivante : Très grossièrement, on peut faire le parallèle avec votre calculatrice, qui vous sert à effectuer des opérations de base et également à faire tourner des programmes (résolution d une équation du second degré). Les opérations de base sont ici directement effectuées dans le shell, et les programmes rédigés dans l éditeur (de code). Opérations basiques dans le shell L objectif de cette première activité est de vous assurer que la syntaxe de Python ne diffère pas de celle que vous connaissez déjà avec votre calculatrice. Le but est de taper dans le shell l instruction donnée dans la colonne de gauche, et d observer et d être critique face au résultat obtenu. N oubliez pas de taper sur Entrée pour valider une instruction ; observez que vous pouvez utiliser les flèches directionnelles et du clavier pour retrouver l historique des instructions déjà tapées. 1

5 + 9 2 * 8 2 ** 8 17 / 5 17 // 5 17 % 5 2 * pi a + b 'a' + 'b' 3 * 'MPSI' 4 * 12 4 * '12' ' 123456123456123456123456123456123456123456123456' Création de plages d entiers Comme vous le savez sans doute déjà, on utilise souvent les boucles lorsque l on fait de la programmation. Nous aurons l occasion d y revenir, mais en attendant rappelons qu une boucle fait intervenir une certaine variable (ou compteur) qui va parcourir une certaine plage de valeurs entières. La commande range permet de générer ces plages, comme l illustrent les exemples ci-dessous. list (range(8)) list (range(4,9)) list (range(4,9,3)) [0,1,2,3,4,5,6,7,8,9,10] [3,5,7,9,11,13] [9,19,29,39,49,59,69,79,89,99] Remarque : Les instructions précédentes ont permis de créer des listes d entiers. Une autre commande utile pour les listes est la commande len (abréviation de length) qui permet de connaître la longueur d une liste. Ex 1 Combien y a-t-il de nombres pairs compris (au sens large) entre 0 et 100? Ex 2 Combien y a-t-il de multiples de 17 compris entre 170 et 2023? Différents types de données Comme vous l avez déjà observé dans le premier exercice, le langage Python fait intervenir des objets de natures ou de types différents. Le résultat de l opération 2 * 12 n est pas celui de l opération 2 * 12. Pour chaque type de donnée, un certain nombre d opérations seront définies : il est par exemple permis de faire la somme de deux mots (ex : Bon + jour! ), mais pas la multiplication ou la division par 3... La commande type permet de connaître (comme son nom l indique) le type d un objet et de savoir quelles opérations il sera légitime de lui appliquer. 2

type( 5 ) type( 2.5 ) type( 2,5 ) type( 1/3 ) type( 1//3 ) type( 5.00 ) type( '5' ) type( 'Bonjour' ) type( Bonjour ) type( 3 > 2 ) type( 3 = 2 ) type( 3 == 2 ) type( list ( range(10) ) ) Les différents types rencontrés sont : On peut également convertir une expression d un type donné dans un autre type. Il suffit alors d utiliser respectivement les fonctions list, tuple, str, float et int qui transforment dans la mesure du possible en un objet de type liste, n-uplet, chaîne de caractères, flottant et entier. float ( 5 ) int ( 2.5 ) int ( -2.5 ) str ( 2.5 ) tuple( ' toto ' ) list ( ' toto ' ) float ( ' toto ' ) tuple( list ( ' toto ' ) ) tuple( list ( (1,2,3) ) ) str ( list ( ' toto ' ) ) str ( 3 > 2 ) Affecter une valeur à une variable Pour donner une valeur à une variable, rien de plus simple en Python. L instruction x = 2 permet à la fois de créer une variable x et de lui affecter la valeur 2. Et rien n empêche de travailler avec d autres types que des nombres. 3

x = 3 x ** 2 type( x ) type( x / 2 ) y = 'Abc' y + y 4 * y type( y ) x == y x == 3 Ex 3 Créer une variable a et lui affecter la valeur 2 ; créer une variable b et lui affecter la valeur 3. Puis proposer plusieurs méthodes pour échanger les valeurs de a et b. Adresse d une variable Pour obtenir l adresse en mémoire d une variable, on utilise l instruction id. a = 10 ; id(a) ; b = 5 ; id(b) a = 10 ; id(a) ; b = a ; id(b) a = 10 ; id(a) ; b = 10 ; id(b) a = 10 ; id(a) ; b = 5 ; id(b) ; b = b + b ; id(b) Le type booléen Une variable de type booléen ne peut prendre que deux valeurs True et False. Comme vous le savez encore, lorsque l on dispose d un booléen (d une assertion) P, on peut définir sa négation ; et si l on a deux booléens, on peut définir leur conjonction [P et Q] et leur disjonction [P ou Q]. Les syntaxes respectives de ces opérateurs en Python sont les suivantes : not(p) désigne l assertion non P ; P and Q désigne l assertion [P et Q] ; P or Q désigne l assertion [P ou Q]. 4

3 == 2 + 1 9 == 3 ** 2-1 > 0 a == 3 ( 1.5 ** 2 ) ** (1/2) == ( 1.5 ** (1/2)) ** 2 (1 + 2 ** (-54)) - 1 == 0 (1-1 ) + 2 ** (-54) == 0 5 in list ( range(8) ) a + b == ab 'a' + 'b' == 'ab' Remarque : Attention au = et au ==. Le premier sert à affecter une valeur à une variable, le second sert à comparer deux expressions. Utilisation de l éditeur Si la fenêtre de commande est utile pour les opérations élémentaires, l éditeur se révèle indispensable dès qu il s agit d effectuer des tâches plus complexes. Et pour rentrer directement dans le vif du sujet, mentionnons deux commandes indispensables en programmation : la commande print : cette première instruction sert à afficher un texte, un nombre, une liste... Son intérêt est évident : imaginez que vous ayez dans votre calculatrice un programme qui calcule les solutions d une équation mais qui ne vous les donne pas! la commande input : celle-ci sert à interagir avec l utilisateur, et à récupérer des données saisies au clavier. Exemple : Voici un premier programme basique, qui consiste simplement à faire afficher le texte Hello world Pour réaliser ce programme, il suffit de taper dans l éditeur la commande : print( 'Hello world' ) Si rien ne se passe, essayez de trouver un moyen de débloquer la situation... Exemple : Après la commande print, la commande input. Pour débuter, un nouvel exemple simple : print( 'Tapez un mot au clavier' ) Mot = input() print( ' Vous avez écrit ',Mot) Ex 4 En vous inspirant de l exemple précédent, écrire un programme qui demande à l utilisateur son prénom, et qui renvoie comme message Bonjour prénom!. Ex 5 Modifiez le programme précédent pour qu il affiche aussi la phrase : Vous avez un bien joli prénom de xxx lettres (où xxx désigne effectivement le nombre de lettres du prénom). Ex 6 Écrire un programme qui demande à l utilisateur un nombre N et qui retourne comme résultat son double. 5

Pour aller (un peu) plus loin Ex 7 Créer un programme générant l affichage suivant : A AA AAA AAAA AAAAA AAAAAA AAAAAAA Ex 8 Code ASCII Dans un ordinateur, chaque caractère (lettre de l alphabet, signe de ponctuation... ) est codé par un certain entier (compris entre 0 et 255) appelé son code ASCII. Par exemple le code ASCII de la lettre A est 65. La commande en Python permettant d avoir le code ASCII d un caractère est ord ; et inversement, la commande associant à un entier N le caractère dont le code ASCII est N est chr. Explicitement : l instruction ord( A ) va retourner l entier 65, qui est le code ASCII du caractère A ; l instruction chr(65) va retourner la lettre A. Muni de ces informations : 1. Trouver les codes ASCII des lettres minuscules. 2. Écrire un programme très court générant l affichage : Le code ASCII de la lettre A est 65 Le code ASCII de la lettre B est 66 Le code ASCII de la lettre C est 67 Le code ASCII de la lettre Z est 90 3. Écrire un programme qui demande à l utilisateur de saisir un mot, et qui retourne comme affichage (si l utilisateur a tapé MPSI) : La 1 -ere lettre de votre mot est M La 2 -eme lettre de votre mot est P La 3 -eme lettre de votre mot est S La 4 -eme lettre de votre mot est I votre mot comporte 4 lettres Ex 9 Un dernier triangle pour la route Créer un programme générant l affichage ci-dessous : 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 6

TP2 : Prise en main de Python Ex 10 Lapins et suite de Fibonacci Etant donné un couple de bébés lapins, combien de couples de lapins obtiendra t-on après un nombre N de mois, sachant que chaque couple produit chaque mois un nouveau couple, lequel ne devient productif qu au bout de deux mois? Evidemment, énoncé tel quel, on voit mal comment écrire un programme répondant au problème... Cela étant, vous pouvez imaginer quel va être le nombre de couples au bout d un mois, de deux mois, de trois mois etc... Essayez! Vous pourrez vérifier vos calculs au bas de cette page. 1 En attendant, voici quelques éléments de réponse à la question posée. Notons un le nombre de couples au bout de N mois. Les hypothèses de l énoncé imposent u0 = 1 et u1 = 1. Puis on a la relation de récurrence : n N, un+2 = un+1 + un Muni de ces informations, écrire un programme permettant de calculer le nombre de couples de lapins au bout d un nombre de mois choisi par l utilisateur. Remarques : â La suite (un ) étudiée dans cet exemple s appelle la suite de Fibonacci, du nom d un mathématicien du début du 13ème siècle (ça ne date pas d hier) qui a utilisé cette suite pour décrire l évolution d une population de lapins (il n y avait pas tellement de distractions à l époque). â Les nombres de la suite de Fibonacci interviennent curieusement souvent dans la nature (nombre de pétales d un tournesol, d une marguerite... ) ; vous pouvez utiliser Internet pour vous en convaincre. En outre, les termes de cette suite possèdent un incroyable nombre de propriétés, dont (au moins) une est liée au nombre d or : le rapport de 2 termes consécutifs de la suite de Fibonacci a pour limite le nombre d or (qui, pour mémoire, est égal à (1 + 5)/2, très approximativement 1,6). â La suite (un ) modélise assez grossièrement l évolution de la population de lapins... D une part en effet, elle est censée être valide pour toute valeur de n, ce qui suppose donc que les lapins sont immortels. D autre part, on est obligé de présupposer que les deux lapins du couple initial se trouvent mutuellement séduisants. 1. Au bout de N = 0 mois : 1 couple ; pour N = 1, 1 couple ; pour N = 2, 2 couples ; pour N = 3, 3 couples ; pour N = 4, 5 couples ; pour N = 5, 8 couples... Une magnifique illustration du calcul de ces premiers termes est consultable en ligne à l adresse : http ://therese.eveilleau.pagesperso-orange.fr/pages/truc mat/textes/lapins.htm Pour éviter de retaper cette adresse, lancez une recherche Fibonacci lapins sur Google ; c est le premier lien. 7