Python Introduction Utilisateur Il y a 2 catégories de personnes utilisant les machines avec des processeurs (ordinateurs, téléphones intelligents, tablettes, consoles, etc): ● les programmeurs ● les autres (non-programmeurs) Programmeur Un programmeur sait utiliser des langages afin de dicter à la machine un ensemble organisé d’ activités à réaliser. Ce sont les programmeurs qui ont les clefs du monde numérique dont l’existance est rendu possible par les processeurs. Ce sont des clefs vers le futur... Langages de programmation Il existe un grand nombre de langages. Certains sont plutôt simples et spécialisés, comme pour configurer une application. Par exemple: HTML, XML, LaTex, iptables. D’autres sont très complexes et polyvalent. Exemple de langage spécialisé Programme C’est un ensemble d’éléments organisés selon les règles syntaxiques du langage. Dans la cas particulier des langages interprétés, un programme est quelquefois appelé un script. Interprété vs compilé Deux grandes catégories de langages: ● compilé: nécessite une étape pour compiler le code avant l’exécution ● interprété: pas de compilation, mais plutôt un interpréteur (qui est un programme), qui lit et exécute le code (script) Langages avec compilation Quelques exemples de langages dont les programmes doivent être compilés par un programme appelé “compilateur”: ● C ● C++ ● Java Exécuter un programme compilé Une fois compilé, un programme est dit exécutable. Généralement, on peut le soumettre au CPU via le système d’exploitation (OS). Dans d’autre cas, il faut le soumettre au CPU via une machine d’exécution. Par exemple: Java. Langages interprétés Quelques exemples de langages sans compilation, mais nécessitant un interpréteur: ● PHP ● Javascript ● Bash ● LUA ● Python ● Ruby Utilité des langages interprétés On fait d'excellentes réalisations avec des outils tels: Excel, Apache, Maya, etc. Mais pour l'exceptionnel, on a besoin de programmer: ● Excel avec Visual basic ● Apache avec PHP ● Maya avec Python ● Etc C'est ce qui permet d'aller au-dela du conventionnel. Paradigme Un paradigme est un style fondamental de programmation qui traite de la manière dont les solutions aux problèmes doivent être formulées. Les paradigmes les plus courant sont: structurée, orientée objet et visuel. Certains langages supportent plusieurs paradigmes. Ça les rend plus flexible, mais aussi plus sujet aux erreurs. Paradigme structuré Une structure du programme centrée sur la décomposition en fonctions. Le langage C a été développé en 1970 et est un exemple typique de langage “pur” structuré. Paradigme objet Une structure centré sur le concept d’objet. Les éléments de la solution informatique sont des objets avec une identité (attributs) et des mécanismes d’interaction (méthodes). Le langage Java est un exemple typique de langage objet. Paradigme visuel L’assemblage des éléments de la solution informatique se fait avec une interface graphique. On crée un canvas de solution avec des entités graphiques dont l’assemblage final est le programme. Visual basic est un exemple typique, mais on peut aussi dire que les outils visuels pour encoder des animations de personnages sont basés sur ce paradigme. C++ C’est un langage multi-paradigme. C’est le langage C, plus les éléments nécessaires pour supporter le paradigme orienté objet. Il a été développé dans les années 80 et nécessite d’avoir un compilateur. Python C’est aussi un langage multi-pardigme. Python date du début 1990. Il a été crée par Guido van Rossum. Il nécessite un interpréteur. Pourquoi s’intéresser au Python? ● ● ● ● ● ● ● ● ● relativement simple intuitif et élégant flexible et puissant portable multi-paradigme multi-plateforme bien documenté bien supporté gratuit et sans redevance Multi-plateforme vs portabilité L’interpréteur Python fonctionne sur une très large gamme de machines. En outre, sur celles qui utilise l’un des OS suivants: ● Windows (toutes versions) ● UNIX: ○ BSD (incluant iOS) ○ Linux (incluant Android) Étant interprété, le code devient portable sur toutes ces plateformes. Exemples pygame Panda3D et Python Web data