Initiation à la programmation avec Python. Sommaire du cours n 1. Notion n 1 : programmer = automatiser un service. Développeur Programme Utilisateur



Documents pareils
TP 1. Prise en main du langage Python

Initiation à la programmation en Python

STAGE IREM 0- Premiers pas en Python

Cours 1 : Qu est-ce que la programmation?

L'instruction if permet d'exécuter des instructions différentes selon qu'une condition est vraie ou fausse. Sa forme de base est la suivante:

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

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

Cours 14 Les fichiers

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

Le stockage local de données en HTML5

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Programmation Web. Madalina Croitoru IUT Montpellier

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

1. Structure d'un programme FORTRAN 95

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

Annexe : La Programmation Informatique

Un serveur web, difficile?

ACTIVITÉ DE PROGRAMMATION

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Drupal : quelques fonctionnalités (ce qu il permet, ce qu il ne permet pas)

Langage Java. Classe de première SI

L informatique en BCPST

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

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

Algorithmique et Programmation, IMA

Programmation Web. Introduction

Conventions d écriture et outils de mise au point

Le codage informatique


Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

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

Mise en place d'un petit workflow de publication avec Drupal 7

Outils pour la pratique

INF2015 Développement de logiciels dans un environnement Agile Examen final hiver 2015

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

Les conseils et les procédures pour utiliser divers programmes francophones avec de l'hébreu

CRÉER UN COURS EN LIGNE

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

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

Le courrier électronique

Environnements et Outils de Développement Cours 1 Introduction

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

2 Comment fonctionne un ordinateur, dans les grandes lignes

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

< Atelier 1 /> Démarrer une application web

Introduction au langage C

Traitement de texte : Quelques rappels de quelques notions de base

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

Serveur de travail collaboratif Michaël Hoste -

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

Réaliser un PUBLIPOSTAGE

Premier cours d informatique

Les différents types de données et leurs opérations de base

TABLEAU CROISE DYNAMIQUE

UE Programmation Impérative Licence 2ème Année

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Comment rédiger et publier une Newsletter

Introduction aux Bases de Données Relationnelles Conclusion - 1

Utiliser un tableau de données

Éléments de programmation et introduction à Java

McAfee Security-as-a-Service

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)

TP JAVASCRIPT OMI4 TP5 SRC

Hébergement de site web Damien Nouvel

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

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

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

Informatique & Systèmes de Communication. Stages de 12 à 16 semaines aux Etats-Unis

Uniformiser la mise en forme du document. Accélère les mises à jour. Permets de générer des tables de matières automatiquement.

1. Installation du Module

Présentation du PL/SQL

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Églantine et les Ouinedoziens

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

Utilisation d objets : String et ArrayList

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

Parcours FOAD Formation EXCEL 2010

td3a correction session7az

Programmation Objet - Cours II

Vue d'ensemble OBJECTIFS

Hébergement WeboCube. Un système performant et sécurisé. Hébergement géré par une équipe de techniciens

MINI-MÉMOIRE DE PPP - S4

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

Comment déposer les comptes annuels des associations, fondations et fonds de dotation.

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var - E mail : bij@agasc.fr / Tel : CONSIGNE N 1 :

Formation Word/Excel. Présentateur: Christian Desrochers Baccalauréat en informatique Clé Informatique, 15 février 2007

7.0 Guide de la solution Portable sans fil

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

Application de lecture de carte SESAM-Vitale Jeebop

Recherche dans un tableau

Cours d algorithmique pour la classe de 2nde

Préparation à l examen EFA en Macro

ALGORITHMIQUE ET PROGRAMMATION En C

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Drupal (V7) : principes et petite expérience

Utilisation de l . Sommaire

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

Transcription:

Initiation à la programmation avec Python Cours n 1 Copyright (C) 2015 Jean-Vincent Loddo Licence Creative Commons Paternité Partage à l Identique 3.0 non transposé. Sommaire du cours n 1 Notion n 1 : programmer = automatiser un service Notion n 2 : les valeurs Notion n 3 : les variables Notion n 4 : la conditionnelle 2 Notion n 1 : programmer = automatiser un service On peut imaginer un programme comme un robot Même si il n'a pas un corps Développeur Programme Utilisateur Comme un robot : quelqu'un le construit, quelqu'un l'utilise Qui le construit? C'est le programmeur (ou développeur) Comment : avec un langage de programmation Combien de fois : une fois! Pourquoi : parce qu'il rendra un service Et même si son ectoplasme est emprisonné dans une fenêtre graphique ou textuelle (terminal) d'un ordinateur Qui l'utilise? C'est l'utilisateur Comme un robot : il fait un travail, il questionne l'utilisateur, il réagit aux réponses et autres stimuli (clavier, souris, réseau, etc) Comment : avec une interface (graphique ou textuelle) Combien de fois : autant qu'il le souhaite Comme un robot : quelqu'un le construit, quelqu'un l'utilise 3 Pourquoi : parce qu'il rend un service 4

Développeur Programme Utilisateur Développeur Programme Utilisateur Mais alors, apprendre à programmer c'est apprendre à automatiser un service? OUI Est-ce que le développeur peut être aussi l'utilisateur? Ce n'est pas sa vocation et ce n'est pas souvent le cas, mais c'est possible Sauf... lorsque le développeur teste (avant de le livrer) si le programme rend effectivement le service qu'on attend de lui Un peu de terminologie à propos : si le comportement est erroné on dit que le programme a un bug (ou bogue) l'activité qui consiste à corriger un programme s'appelle debugging (ou debogage) 5 6 Premier programme (1) Premier programme (2) #!/usr/bin/python # coding: utf-8 #!/usr/bin/python # coding: utf-8 shebang : en-tête du programme (ou "script"). Ne pas oublier non plus de rendre le fichier exécutable (chmod +x) pour utiliser des caractères accentués print "Lorsqu'on se cogne la tête contre un pot et que cela sonne creux," print "Lorsqu'on se cogne la tête contre un pot et que cela sonne creux," print "ce n'est pas forcément le pot qui est vide." print "ce n'est pas forcément le pot qui est vide." print "Confucius, philosophe." print "Confucius, philosophe." print "---" print "---" print "Qui veut faire quelque chose trouve un moyen," print "Qui veut faire quelque chose trouve un moyen," print "qui ne veut rien faire trouve une excuse." print "qui ne veut rien faire trouve une excuse." print "Proverbe Arabe." print "Proverbe Arabe." 7 Remarque : ce programme fait appel à l'outil (fonction) print sept fois : le service rendu est donc un assemblage de sous-services rendus par des outils (sous-programmes) pré-existants 8

Premier programme (3) Premier programme (4) Nous avons rangé la liste des instructions dans le fichier citations.py et nous l'avons rendu exécutable (chmod +x). Exécution : Nous avons rangé la liste des instructions dans le fichier citations.py et nous l'avons rendu exécutable (chmod +x). Exécution : $./citations.py Lorsqu'on se cogne la tête contre un pot et que cela sonne creux, ce n'est pas forcément le pot qui est vide. Confucius, philosophe. --- $./citations.py Lorsqu'on se cogne la tête contre un pot et que cela sonne creux, ce n'est pas forcément le pot qui est vide. Confucius, philosophe. --- print n 1 print n 2 print n 3 print n 4 Qui veut faire quelque chose trouve un moyen, Qui veut faire quelque chose trouve un moyen, print n 5 qui ne veut rien faire trouve une excuse. qui ne veut rien faire trouve une excuse. print n 6 Proverbe Arabe. 9 Proverbe Arabe. print n 7 10 Notion n 1 : programmer = automatiser un service On peut imaginer un programme comme un robot Notion n 1 : programmer = automatiser un service Admettons : un programme élabore des informations Ok, ok, mais emprisonné dans la fenêtre d'un ordinateur il ne pourra pas faire le ménage! Ni repasser le linge! Quels types d'information sont traitées? Textes? Nombres? Dates? Noms de fichiers? Adresses Internet? Autre chose? Alors, que peut-il rendre comme service intéressant? récupérer des informations (p.e. sur Internet, dans des fichiers, ou données par l'utilisateur), présenter des informations (p.e. des proverbes, la date), calculer des informations C'est la notion de valeur Et ça dépend du langage de programmation... Autrement dit : un programme élabore des informations 11 12

Notion n 2, les informations ou valeurs élaborées Les valeurs en Python Les valeurs d'un langage de programmation sont les informations que les programmes sont capables de manipuler Il y en a de plusieurs types : Les valeurs d'un langage de programmation sont les informations que les programmes sont capables de manipuler Il y en a de plusieurs types : Nombres entiers (0 42-16 100) Nombres flottants (3.14159 2.71828) Booléens (True False) Caractères (a z A Z 0 9 #) Nombres entiers (0 42-16 100) Nombres flottants (3.14159 2.71828) Booléens (True False) Caractères (a z A Z 0 9 #) type «int» ou «long» type «float» type «bool», attention à la syntaxe : première lettre de True et False en majuscule ce type de base n'existe pas en Python Chaînes de caractères (salut HeLLo Confucius, philosophe.) Chaînes de caractères (salut HeLLo Confucius, philosophe.) type «string» Tableaux, listes, tuples, arbres, dictionnaires, fonctions, objets,... 13 Tableaux, listes, tuples, arbres, dictionnaires, fonctions, objets,... tout y est en Python! 14 Résumé pour l'instant et prochaine question... Un programme est comme un robot sauf que son job est de manipuler des informations, par exemple des chaînes de caractères Un programmeur le construit, un utilisateur l'utilise Question posée : Programmer c'est aussi prévoir sans tout savoir Comment programmer le comportement du robot sans savoir ni quand, ni dans quelle circonstances, ni par qui, ni comment il sera utilisé? Exemples : Parce que cela rend service Très bien mais on entrevoit un petit problème : comment programmer le comportement du robot sans savoir ni quand, ni dans quelle circonstances, ni par qui, ni comment il sera utilisé? 15 Programmer un navigateur Internet : quelles pages seront visitées? Combien en même temps? À quelles dates? Avec quel OS? Avec quelles technologies (Html, Javascript, Java,...)?... Programmer un traitement de texte : quel texte? Quelle langue? Quels caractères? Combien de pages? Quels effets (gras, italique, souligné,...)? (plus simple) Programmer un robot qui calcule le double : de quel nombre? (plus simple) Programmer l'affichage d'une gentillesse du style «C'est génial mon cher François d'avoir 61 ans» : quel sera le nom (à la place de François)? Quel sera l'age (à la place de 61)? Et si c'était Ségolène? 16

Notion n 3, les variables Pour traiter l'information que le programmeur connaît mais surtout celle qu'il ne connaît pas, les langages de programmation proposent les «variables» Les variables sont des boîtes qui ont un nom et un contenu Variables : comment on stocke une information dans une variable? Par affectation du contenu : TOTO = "salut le monde" Y = 16 = 3.14159 Le contenu est une valeur, c'est-à-dire une information traitée par le langage de programmation Comment on stocke une information (valeur) dans une boîte? Par lecture des caractères saisis au clavier par l'utilisateur. En C ou Java cela se fait avec scanf, en Bash avec read, en Python cela se fait avec raw_input et toujours par l'affectation : = raw_input("votre nom? ") Y = raw_input("votre age? ") Comment on la récupère? 17 18 Variables : comment on récupère l'information stockée dans une variable? Variables : comment on récupère l'information stockée dans une variable? Dans certains langages le contenu de la boîte est indiqué par $ (Bash, PHP, ) : $ Dans certains langages le contenu de la boîte est indiqué par $ (Bash, PHP, ) : $ En Python, comme en math et comme dans beaucoup d'autres langages, le nom de la boîte peut indiquer aussi le contenu, ça dépend du contexte : TOTO = "La réponse" En Python, comme en math et dans beaucoup d'autres langages, le nom de la boîte peut indiquer aussi le contenu, ça dépend du contexte : TOTO = "La réponse" = 12 = 12 Y = 30 + Y = 30 + print TOTO,"à la question ultime est",y print TOTO,"à la question ultime est",y Ce programme affiche : Ce programme affiche : La réponse à la question ultime est 42 19 La réponse à la question ultime est 42 20

Variables : remarque sur les informations manipulées Le développeur programme (écrit) cette ligne en 1999 : = raw_input("votre nom? ") Un robot (une instance du programme) est exécuté en 2017 L'utilisateur saisi une chaîne de caractères en 2017 Le robot stocke cette chaîne dans la variable en 2017 Le développeur, toujours en 1999, ne connaît pas la chaîne saisie mais il sait qu'elle se trouve dans il peut donc y accéder en écrivant dans la suite du programme Le petit robot bien gentil Service à rendre : le robot doit demander le nom et l'âge de l'utilisateur et lui écrire ensuite une gentillesse du style «Cher c'est génial d'avoir... ans» Comment le programmeur peut «remplir» les pointillés, c'est-à-dire manipuler l'information qu'il ne connaît pas? C'est simple, il peut citer cette information sans la connaître : NOM = raw_input "Votre nom?" print "Cher",NOM,"c'est génial d'avoir",age,"ans" It's a piece of cake Le développeur planifie le traitement des informations qu'il connaît et des informations qu'il ne connaît pas connaît pas c'est pas grave 21 Le programmeur sait qu'une certaine information est dans une certaine boîte. Cela suffit pour faire des calculs, pour afficher ou pour prendre des décisions! 22 Un robot pour tout âge Notion n 4, la «conditionnelle» Supposons à présent de vouloir écrire une phrase différente en fonction de l'âge. Service à rendre : Si l'utilisateur a moins de 13 ans le robot devra écrire «Alors vous jouez à Call of Duty» Sinon il écrira «Alors vous jouez à Pokemon» Il est possible de planifier des actions conditionnelles en utilisant un test, qui est une expression dont le résultat est booléen (vrai ou faux) : Si le test a succès (résultat True), le robot exécutera certaines actions Si le test échoue (résultat False), le robot exécutera d'autres actions Comment faire? Avec la célèbre construction if-then-else! (en Python if-elif-else) : if EPR: Expression booléenne (d'aiguillage) if (AGE <= 13): print "Alors vous jouez à Call of Duty" Un juego de niños ACTIONS 1 ACTIONS 2 Actions exécutées en cas de succès (True) du test Actions exécutées en cas d'échec (False) du test print "Alors vous jouez à Pokemon" 23 Tabulation ou espaces (blancs) de la même longueur Pour délimiter les sous-blocs d'instructions (spécificité Python!) 24

Syntaxe Un robot pour tout âge Un robot pour tout âge Le mot de la fin (du 1 er cours) if EPR: ACTIONS 1 if (AGE <= 13): print "Alors vous jouez à Call of Duty" ACTIONS 2 Par rapport à notre exemple EPR print "Alors vous jouez à Pokemon" if (AGE <= 13): print "Alors vous jouez à Call of Duty" print "Alors vous jouez à Pokemon" ACTIONS 1 ACTIONS 2 Non seulement on peut stocker (dans une variable) une information qu'on ne connaît pas, mais on peut aussi traiter cette information en adaptant le comportement du robot aux différentes possibilités par la construction conditionnelle 25 26 Adresse des images utilisées Boite fermée https://openclipart.org/detail/15872/closed-box-by-mcol Robot sympa https://openclipart.org/detail/170101/cartoon-robot-by-sirrob01 Robot chenille https://openclipart.org/detail/168755/cartoon-robot-by-qubodup Laptop https://openclipart.org/detail/24817/-by--24817 Développeur https://openclipart.org/detail/37129/personnage_ordinateur-by-antoine Utilisateur https://openclipart.org/detail/37135/personnage_ordinateur-by-antoine-37135 Pizza box https://openclipart.org/detail/171767/pizza-haunt-by-jakoriginal-171767 Pizza https://openclipart.org/detail/189439/pepperoni-pizza-by-toons4biz-189439 27