Initiation à la programmation



Documents pareils
Initiation à la programmation en Python

TP 1. Prise en main du langage Python

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Présentation du langage et premières fonctions

L informatique en BCPST

STAGE IREM 0- Premiers pas en Python

Découverte de Python

I. Introduction aux fonctions : les fonctions standards

Algorithmique et Programmation, IMA

Représentation d un entier en base b

Les chaînes de caractères

Calcul Formel et Numérique, Partie I

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

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

Algorithmes et mathématiques. 1. Premiers pas avec Python. Exo Hello world!

Utilisation d objets : String et ArrayList

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)

Programmation C. Apprendre à développer des programmes simples dans le langage C

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

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

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

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

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

Chap III : Les tableaux

V- Manipulations de nombres en binaire

Licence Sciences et Technologies Examen janvier 2010

Chapitre 2 Devine mon nombre!

2 Comment fonctionne un ordinateur, dans les grandes lignes


TP, première séquence d exercices.

Maple: premiers calculs et premières applications

Premiers pas avec Mathematica

Algorithmique avec Algobox

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

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

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Algorithme. Table des matières

DM 1 : Montre Autoquartz ETA

Cours 7 : Utilisation de modules sous python

Corrigé des TD 1 à 5

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

Introduction à MATLAB R

Cours d algorithmique pour la classe de 2nde

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

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

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Cours d Algorithmique et de Langage C v 3.0

Introduction au langage C

Calcul Formel et Numérique, Partie I

Définitions. Numéro à préciser. (Durée : )

Programmer en JAVA. par Tama

1 Recherche en table par balayage

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

1 I ) Une première approche de l algorithme en seconde, saison 2010 _ Antoine ROMBALDI

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

Python - introduction à la programmation et calcul scientifique

Initiation à l algorithmique

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

ACTIVITÉ DE PROGRAMMATION

Logiciel de Base. I. Représentation des nombres

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

INF 321 : mémento de la syntaxe de Java

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

Rappels sur les suites - Algorithme

Le chiffre est le signe, le nombre est la valeur.

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

Introduction à l informatique en BCPST

Initiation à LabView : Les exemples d applications :

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes):

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

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

La mémoire. Un ordinateur. L'octet. Le bit

Algorithmique et programmation : les bases (VBA) Corrigé

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Conventions d écriture et outils de mise au point

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2

Langage Java. Classe de première SI

UE C avancé cours 1: introduction et révisions

Représentation des Nombres

Codage d information. Codage d information : -Définition-

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Introduction à R. Florence Yerly. Dept. de mathématiques, Université de Fribourg (CH) SP 2011

Initiation à la programmation OEF pour Wims (exercices).

I00 Éléments d architecture

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Compilation (INF 564)

Le langage C. Séance n 4

IV- Comment fonctionne un ordinateur?

Solutions du chapitre 4

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies


Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Présentation du PL/SQL

Cours Informatique Master STEP

Transcription:

Chapitre 4 Initiation à la programmation Un langage de programmation est un jeu d instructions élémentaires donné avec un ensemble de règles d assemblage permettant de réaliser n importe quel calcul. Nous présentons ici une introduction très succincte à Python, langage autorisant la programmation impérative et la programmation orientée-objet, portable sur la plupart des OS (Unix, Mac Os, Windows,... ), placé sous la licence BSD (pour Berkeley Software Distribution) et disponible gratuitement, aussi bien utilisable pour écrire des programmes de quelques lignes que des projets très complexes. Le site officiel de Python est http://www.python.org/. Vous pourrez y télécharger le langage dans la version correspondant au système d exploitation que vous utilisez, ainsi que de la documentation. En particulier, le tutoriel de Guido van Rossum, l auteur principal de Python, est bien conçu pour apprendre le langage (http://docs.python.org/tut/). Un très bon ouvrage en français est Apprendre à programmer avec Python, de Gérard Swinnen, Eds O Reilly. 4.1 Programmer en Python Un programme écrit dans un langage de programmation donné est une suite d instructions élémentaires choisies parmi les instructions proposées par le langage et respectant des règles d assemblage, une syntaxe, précisément définies par le langage. Un programme est écrit à l aide d un éditeur de texte, comme Emacs, et est appelé code source. Il ne constitue pas encore un objet directement exécutable par par la machine. Pour pouvoir être exécuté, il faut qu il soit traduit en instructions directement exécutables par la machine, 39

40 CHAPITRE 4. INITIATION À LA PROGRAMMATION c est-à-dire en langage machine. Deux techniques sont utilisées pour cela, l interprétation et la compilation. Dans la première, le programme source est analysé et traduit à la volée en langage machine, les instructions résultantes étant immédiatement exécutées. Dans la seconde, un compilateur analyse et traduit le programme source en un programme objet qui peut à son tour être directement exécuté. Un programme écrit en Python peut être aussi bien interprété que compilé : nous n utiliserons que la première technique. Les programmes sources seront écrits dans des fichiers dont le nom aura l extension.py, par exemple PremierProgramme.py. Ils seront exécutés par la commande python PremierProgramme.py lancée dans un terminal. 4.1.1 Les données Tout langage de programmation comprend des types de données élémentaires, permettant en général de travailler directement sur des nombres entiers, des nombres réels, des caractères, des chaînes de caractères,..., ainsi qu un certain nombre de constructeurs de types permettant de travailler sur des types de données plus complexes (tableaux, listes, dictionnaires,... ). Nous étudierons principalement dans cette introduction le type entier, permettant de coder des nombres entiers, et le constructeur de listes. 4.1.2 Les opérations sur les nombres Les opérations usuelles sont prédéfinies : + (addition), - (soustraction), * (multiplication) et / (division). Le programme # prog1.py # écrit par F. Denis, # le 13/10/07 print 31+7 print 31-7 print 31*7 print 31/7 # Attention : division entière print 31.0/7 print 31**7 # exponentiation print 31%7 # reste de la division euclidienne sauvegardé dans le fichier prog1.py, après exécution de la commande python prog1.py, produira l affichage suivant :

4.1. PROGRAMMER EN PYTHON 41 38 24 217 4 4.42857142857 27512614111 3 Commentaires : print est une instruction d affichage ; les commentaires sont des informations ajoutées par le programmeur au programme source qui ne doivent pas être interprétées par la machine : en Python, il suffit de les faire précéder du caractère # ; par défaut, la division de deux entiers a et b produit un entier, quotient de la division euclidienne de a par b ; si l on souhaite obtenir le résultat de la division réelle, on peut par exemple ajouter un point décimal à l un ou l autre. 4.1.3 Les variables Une variable est un objet qui possède un nom qui fait référence à un espace de la mémoire vive de l ordinateur dans lequel est stockée une donnée : la valeur de la variable. Les noms des variables en Python sont des séquences de lettres et de chiffres qui doivent commencer par une lettre et ne pas contenir de caractères accentués ou spéciaux. Les lettres minuscules et majuscules sont distinguées. Quelques mots réservés par le langage (comme print) ne doivent pas être utilisés comme nom de variables, afin de ne pas créer d ambiguïté. Un programme est d autant plus lisible que le nom des variables reflète leur sens dans le programme. Par exemple, si des variables doivent désigner la hauteur et la largeur d un rectangle, on préférera utiliser les noms hauteur et largeur plutôt que x et y. L opération consistant à définir la valeur d une variable est appelée affectation. Elle s effectue en Python à l aide du signe =. L affichage de la valeur d une variable se fait au moyen de l instruction print. Le programme suivant n=3 print n n=5 # la variable n change de valeur print n

42 CHAPITRE 4. INITIATION À LA PROGRAMMATION n=n+3 # la nouvelle valeur de la variable n dépend de l ancienne print n m=n # la valeur de la variable m est égale à celle de n print m n=n*n print n,m # la valeur de m n est plus égale à celle de n m,n=n,m # affectation simultanée des deux variables n et m. print n,m # les valeurs de m et n ont été permutées. 3 5 8 8 64 8 8 64 produit l affichage Commentaires : l affectation d une valeur à une variable est temporaire : elle peut être modifiée à tout moment ; les variables peuvent être utilisées dans des calculs, les opérations s appliquant alors à leurs valeurs ; la permutation simultanée des valeurs de deux variables est interdite dans la plupart des langages de programmation autres que Python. La commande d affichage print peut prendre plusieurs arguments, qui peuvent être des variables ou des constantes de différents types. L exécution du programme suivant n=12 n2=n*n print le carré de,n, est,n2 produira l affichage le carré de 12 est 144 Remarque : pour pouvoir afficher correctement les caractères accentués (deuxième partie de la table ASCII), il faut indiquer à l interpréteur Python quel jeu de caractères utiliser. Pour cela, il faut ajouter une ligne en tête du programme qui peut être # -*- coding:latin-1 -*-

4.1. PROGRAMMER EN PYTHON 43 ou # -*- coding:utf-8 -*- Un programme doit pouvoir communiquer avec un utilisateur, par exemple en lui permettant de définir la valeur d une variable. On appelle saisie cette opération, réalisée en Python au moyen de l instruction input. Le programme # -*- coding:latin-1 -*- n=input( Entrez un nombre : ) print le carré de,n, est,n*n produira d abord l affichage Entrez un nombre : attendant que l utilisateur tape un nombre suivi de la touche Entrée. Le programme calcule alors et affiche le carré de ce nombre. Par exemple, Entrez un nombre : 3 le carré de 3 est 9 4.1.4 Les instructions conditionnelles Les programmes précédents sont des séquences d instructions élémentaires qui sont toutes exécutées les unes à la suites des autres. Un calcul doit donner la possibilité de n effectuer une opération que si telle donnée vérifie telle condition. On appelle instruction d exécution conditionnelle les instructions permettant ce contrôle à l exécution du programme. On utilise essentiellement deux instructions d exécution conditionnelle :... if (condition): instruction1... et... if (condition): instruction1 else: instruction2...

44 CHAPITRE 4. INITIATION À LA PROGRAMMATION Dans le premier cas, l instruction 1 n est exécutée que si la condition est vérifiée ; dans le second cas, l instruction 1 est exécutée ssi la condition est vérifiée et l instruction 2 est exécutée ssi la condition n est pas vérifiée. Une condition est une expression logique qui, lorsqu elle est exécutée, est soit vraie, soit fausse. Les conditions élémentaires portant sur des expressions numériques sont construites à l aide d opérateurs de comparaison. x == y # x est égal à y x!= y # x est différent de y x < y # x est plus petit que y x > y # x est plus grand que y x <= y # x est plus petit ou égal à y x >= y # x est plus grand ou égal à y Les expressions logiques élémentaires peuvent être combinées en des expressions complexes en utilisant les opérateurs logiques or, and et not. Le programme suivant affiche si le nombre saisi par l utilisateur est pair ou impair : # -*- coding:latin-1 -*- n=input( Entrez un nombre : ) if (n%2==0): # n est pair ssi le reste de la # division de n par 2 est nul print n, est pair else: print n, est impair Les structures de contrôles peuvent être imbriquées. Le programme suivant contrôle si l utilisateur saisit bien un nombre pair compris entre 0 et 10. # -*- coding:latin-1 -*- n=input( Entrez un nombre pair compris entre 0 et 10 : ) if (n%2==0)and (n>=0) and (n<=10): print n, a les bonnes propriétés else: if (n%2!=0): print n,"n est pas pair"

4.1. PROGRAMMER EN PYTHON 45 else: if (n>10): print n, est supérieur à 10 else: print n, est inférieur à 0 Remarque importante : un bloc d instructions est une suite d instructions dont l exécution est solidaire. Le programme précédent peut être défini comme un bloc de deux instructions dont la première est élémentaire et la seconde est composée. La partie else de la seconde instruction est un bloc composé d une instruction composée. En Python, les instructions composant un même bloc doivent être indentées de la même manière, c est-à-dire avec le même décalage. Lorsqu on utilise un éditeur comme Emacs sous Unix ou IDLE sous Windows, configuré pour écrire des programmes en Python, les indentations correspondent aux tabulations et sont proposées automatiquement lors de l écriture. 4.1.5 Les instructions répétitives Considérons la suite définie par récurrence par u 0 = 1 et n 0, u n+1 = 3u n + 1. Les instructions précédentes ne permettent pas d écrire un programme qui demande un nombre n à l utilisateur et affiche les n premiers termes de la suite. Pour cela, il est nécessaire de pouvoir répéter l exécution d un bloc de programme un certain nombre de fois défini au cours de l exécution du programme. L instruction while permet une telle répétition. Sa syntaxe en Python est définie par... while (condition): bloc d instructions... Tant que la condition est vérifiée, le bloc d instructions dépendant de cette condition est exécutée. Le programme suivant affiche les n premiers termes de la suite définie ci-dessus.

46 CHAPITRE 4. INITIATION À LA PROGRAMMATION u=1 nbtermes=input( Combien de termes souhaitez-vous afficher : ) compteur=1 while (compteur<=nbtermes): print u u=3*u+1 compteur=compteur+1 Commentaires : les conditions ont la même structure que dans les instructions conditionnelles ; si la condition est fausse, le bloc qui en dépend n est pas exécuté ; si la condition est vraie, le bloc est exécuté puis la condition est réévaluée ; si la condition ne devient jamais fausse, le bloc est réexécuté indéfiniment! 4.1.6 Les fonctions Un bon principe de programmation consiste à isoler, sous forme de fonctions, des morceaux de codes servant à calculer des résultats partiels : cela permet en particulier de les réutiliser et de les tester séparément. La suite définie précédemment peut être calculée par la fonction suivante def u(n): #en-t^ete de la fonction # cette fonction calcule le terme d indice n de la suite # définie par u0=0 et un+1=3un+1 i=0 # une variable locale indiquant l indice d un terme val=1 # la valeur de la suite en 0 while (i<n): # l itération s arr^ete pour i=n val=3*val+1 # calcul du terme suivant i=i+1 # indice suivant return val # valeur cherchée Le code précédent définit une fonction u. La variable n figurant dans l entête de la fonction est un paramètre qui désignera l indice du terme qu on souhaite calculer. Les variables i et val qui figurent dans le code et servent à calculer le résultat sont des variables locales à la fonction : elles n existent que pendant l exécution du code de la fonction. Le résultat de la fonction est renvoyé à l aide de l instruction return. Un programme demandant à l utilisateur un indice et affichant le terme correspondant de la suite pourra alors être codé de la manière suivante :

4.1. PROGRAMMER EN PYTHON 47 indice=input( Indice : ) print u(indice) Les fonctions peuvent être composées. Soit v la suite définie par v n = 2u n 1 pour tout entier n. Elle peut être calculée par la fonction suivante : def v(n): # cette fonction calcule le terme d indice n # la suite définie par v=2un-1 return 2*u(n)-1 4.1.7 Les modules Python contient un certain nombre de fonctions intégrées au langage comme abs(x) qui calcule la valeur absolue du nombre x ou max(x1,..., xn) qui calcule le plus grand parmi les nombres x1,..., xn. Un programmeur peut décider d écrire un ensemble de fonctions portant sur un sujet particulier et de les regrouper au sein d un fichier appelé module ou bibliothèque (library en anglais). Ces modules peuvent alors être inclus dans tout programme pour permettre l utilisation des fonctions qu ils contiennent. Des dizaines de modules préprogrammés sont disponibles dans les distributions de Python ou sur le site python.org : il existe par exemple un module math qui contient un grand nombre de fonctions mathématiques et un module random qui permet d accéder à des générateurs de nombres aléatoires. Pour inclure l ensemble des fonctions d un module machin, il suffit d écrire au début du programme : from machin import * où l * peut être remplacée par une liste de fonctions si l on sait exactement de quelles fonctions on a besoin. Par exemple, la fonction suivante calcule le nombre de bits nécessaires pour coder n objets. La fonction log(x,b) calcule le logarithme de x en base b ; la fonction ceil(x) calcule le plus petit entier supérieur ou égal à x. from math import log,ceil def nbbits(n): return ceil(log(n,2)) Les fonctions du module random que nous utiliserons sont :

48 CHAPITRE 4. INITIATION À LA PROGRAMMATION seed() qui initialise le générateur de nombre aléatoires en utilisant l horloge du système d exploitation, randint(a,b) qui retourne un entier compris entre a et b, random() qui retourne un réel compris dans l inteervalle [0, 1[. Une fonction qui tire à pile ou face et un programme qui affiche le résultat de 10 lancers : from random import * def PileOuFace(): if (randint(0,1)==0): print "pile" else: print "face" seed() i=1 while (i<=10): PileOuFace() i=i+1 4.1.8 Exercices 1. La suite de Fibonacci est définie par : u 0 = 0, u 1 = 1 et n 0, u n+2 = u n+1 + u n. Ecrivez un programme qui affiche les n premiers termes de la suite, n étant demandé à l utilisateur. 2. La suite de Syracuse d un entier n est définie par u 0 = n, u n+1 = 3u n + 1 si u n est impair et u n+1 = u n /2 si n est pair. On conjecture que pour tout entier n, il existe un terme de sa suite de Syracuse égal à 1. Ecrivez le programme qui demande un entier n à l utilisateur et calcule tous les termes de la suite jusqu au premier terme égal à 1. 3. Pour tout entier n, écrivez un programme qui calcule le plus petit indice i(n) pour lequel u i(n) = 1. 4. Ecrivez un programme qui calcule les 100 premiers termes de la suite i(n).

4.2. UN EXEMPLE DE STRUCTURE DE DONNÉES : LES LISTES 49 4.2 Un exemple de structure de données : les listes Le constructeur de listes permet de rassembler de façon ordonnée plusieurs éléments dans un seul objet. Ces éléments peuvent être de types différents. 4.2.1 Définition d une liste Une liste est définie comme une collection d éléments séparés par des virgules, l ensemble étant enfermé dans des crochets : jours = [ lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche ] ventes = [85, 82, 90, 83, 96, 100, "pas de vente le dimanche"] premiers = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29] Dans cet exemple, la variable jours désigne une liste composée de chaînes de caractères, la variable ventes désigne une lsite composée d entiers et d une chaîne de caractères et enfin la variable premiers désigne la liste composée des 10 premiers nombres premiers. 4.2.2 Accès aux éléments, extraction d une sous-liste Dans une liste les éléments sont ordonnés, on peut donc directement accéder à un élément à une position données, ou encore considérer tous les élements compris entre deux positions. Attention! En informatique, les numérotations des listes et des tableaux commencent en général à 0. C est le cas en Python. Ainsi le i-ème élément de la liste est en position i 1. >>> print jours[0] lundi >>> print jours[1] mardi >>> print jours[7] IndexError: list index out of range Il est parfois utile d accéder au dernier élément d une liste dont on ne connaît pas le nombre d élément. En Python, le dernier élement d une liste peut être désigné par l indice -1, l avant-dernier par l indice -2, etc.

50 CHAPITRE 4. INITIATION À LA PROGRAMMATION >>> print jours[-1] dimanche >>> print jours[-2] samedi >>> print jours[1:3] [ mardi, mercredi ] >>> print jours[:3] [ lundi, mardi, mercredi ] >>> print jours[3:] [ jeudi, vendredi, samedi, dimanche ] Attention lors de l extraction d une sous-liste aux bornes gauches inclues et aux bornes droites exclues... 4.2.3 Concaténation, répétition On peut, comme on le fait en général pour les mots, concaténer ou répéter des listes. Les opérations correspondantes sont + et. L opération de répétition est par exemple utile pour créer une liste de grande taille ne contenant que des 0 : >>> debut = jours[:3] >>> fin = jours[3:] >>> semaine = debut+fin >>> print semaine [ lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche ] >>> zeros = [0]*10 >>> print zeros [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] >>> deux_uns = [1, 1] >>> uns = deux_uns*5 >>> print uns [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] 4.2.4 Modification d une liste On a vu qu on pouvait accéder directement à un élément d une liste, on peut même le modifier directement!

4.2. UN EXEMPLE DE STRUCTURE DE DONNÉES : LES LISTES 51 >>> ventes[6] = 83 >>> print ventes [85, 82, 90, 83, 96, 100, 83] 4.2.5 Opérations de base Longueur d une liste. On dispose d une fonction donnant la longueur d une listes, c est-à-dire le nombre d éléments appartenant à cette liste. Cette fonction est len : >>> n = len(ventes) >>> print n 7 >>> print len(jours) 7 Suppression d un élément. On peut également supprimer un élément d une liste en indiquant la position de l élément que l on souhaite supprimer : >>> print jours, len(jours) [ lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche ] 7 >>> del jours[2] >>> print jours, len(jours) [ lundi, mardi, jeudi, vendredi, samedi, dimanche ] 6 4.2.6 Parcours d une liste Une particularité essentielle des listes est que les éléments sont ordonnés au sein de cette liste. Ceci a permis aux concepteurs de Python de proposer un moyen de parcourir les listes de façon très simple pour l utilisateur : >>> for jour in jours: print jour, lundi mardi jeudi vendredi samedi dimanche >>> proverbe = [ La, raison, du, plus, fort, est, toujours, la, meilleure ] >>> for mot in proverbe: print mot, La raison du plus fort est toujours la meilleure

52 CHAPITRE 4. INITIATION À LA PROGRAMMATION 4.2.7 Listes d entiers avec range On a souvent besoin de faire parcourir à une variable entière les entiers naturels compris entre 1 et n par exemple. Il existe en Python la fonction range qui permet la construction d une liste contenant ces valeurs : >>> liste = range(10) >>> print liste [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> liste2 = range(5,13) >>> print liste2 [5, 6, 7, 8, 9, 10, 11, 12] On utilisera la fonction range avec un ou deux arguments. Il s agit de bien faire attention au sens de la fonction range dans ces deux cas : avec l appel range(n), la liste commence avec l élément 0 et s arrête à l élément n 1 (elle contient donc n éléments), avec l appel range(n,m), la liste commence avec l élément n et s arrête à l élément m 1. Important : L utilisation de la fonction range combinée avec l opérateur de parcours de liste for permet donc de réaliser la boucle Pour vue précédemment. >>> print range(1,7) [1, 2, 3, 4, 5, 6] >>> for i in range(1,7): if (i%2 == 0): print i, "est pair" else: print i, "est impair" 1 est impair 2 est pair 3 est impair 4 est pair 5 est impair 6 est pair On peut également utiliser le constructeur range pour parcourir un ensemble d indices : >>> premiers = [2, 3, 5, 7, 11, 13]

4.3. LES CHAÎNES DE CARACTÈRES 53 >>> for i in range(len(premiers)): print "Le ", i+1, "ème nombre premier est ", premiers[i] Le 1 ème nombre premier est 2 Le 2 ème nombre premier est 3 Le 3 ème nombre premier est 5 Le 4 ème nombre premier est 7 Le 5 ème nombre premier est 11 Le 6 ème nombre premier est 13 4.2.8 Comparaison Enfin, l opérateur de comparaison == est étendu aux listes. Il permet de comparer deux listes en testant si elles ont la même longueur et si pour toute position dans la liste, les élements correspondants dans chacune des deux listes sont égaux. 4.3 Les chaînes de caractères On a déjà utilisé des chaînes de caractères lorsque l on a utilisé la commande print. >>> nom = "Thomas" >>> print nom[1] h >>> print nom[:4] Thom >>> n = abc >>> m = def >>> n+m abcdef >>> j= aujourd hui SyntaxError: invalid syntax >>> j="aujourd hui" # cha^ıne comprenant une apostrophe L implémentation dans Python des chaînes de caractères est en fait assez proche de celles des listes. Plus précisément, les chaînes de caractères peuvent être vues comme des listes (de caractères) telles que : leur définition est simplifiée (voir exemples) elles sont non modifiables. On ne peut donc pas supprimer un élément ou modifier un caractère!

54 CHAPITRE 4. INITIATION À LA PROGRAMMATION En résumé, le comportement des opérations vues sur les listes dans le cadre des chaînes de caractères est le suivant : 1. définition : simplifiée 2. accès aux éléments : OK 3. extraction de sous-chaînes : OK 4. concaténation : OK 5. répétition : OK 6. modification : NON 7. longueur : OK 8. suppression : NON 9. parcours : OK 10. liste automatique : NON 11. comparaison : étendue. En plus de ==, on peut également utiliser < et >. Enfin, pour convertir un entier naturel en chaîne de caractères, on utilise la fonction str(). Réciproquement, pour transformer une chaîne de caractères ne contenant que des chiffres en un entier naturel, on utilise la fontion int(). >>> nombre = 143 >>> nom_de_fichier = "file"+nombre Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: cannot concatenate str and int objects >>> numero = str(nombre) >>> nom_de_fichier = "file"+numero >>> print nom_de_fichier file143 >>> phrase = "Le numéro gagnant est le 48" >>> winner = int(phrase[25:]) >>> print winner/4 12 Remarque : On ne peut pas concaténer une chaîne de caractères avec un entier. Il faut pour cela transformer l entier en une chaîne de caractères à l aide de la fonction str().

4.3. LES CHAÎNES DE CARACTÈRES 55 Number-theoretic and representation functions : ceil(x) Return the ceiling of x as a float, the smallest integer value greater than or equal to x. fabs(x) Return the absolute value of x. floor(x) Return the floor of x as a float, the largest integer value less than or equal to x. fmod(x,y) Return fmod(x, y), as defined by the platform C library. frexp(x) Return the mantissa and exponent of x as the pair (m, e). m is a float and e is an integer such that x == m * 2**e exactly. If x is zero, returns (0.0, 0), otherwise 0.5 = abs(m) 1. This is used to pick apart the internal representation of a float in a portable way. ldexp(x, i) Return x * (2**i). This is essentially the inverse of function frexp(). modf(x) Return the fractional and integer parts of x. Both results carry the sign of x, and both are floats. Power and logarithmic functions : exp(x) Return e**x. log(x[, base]) Return the logarithm of x to the given base. If the base is not specified, return the natural logarithm of x (that is, the logarithm to base e). Changed in version 2.3 : base argument added. log10(x) Return the base-10 logarithm of x. pow(x, y) Return x**y. sqrt(x) Return the square root of x. Trigonometric functions : acos(x) Return the arc cosine of x, in radians. asin(x) Return the arc sine of x, in radians. atan(x) Return the arc tangent of x, in radians. cos(x) Return the cosine of x radians. hypot(x, y) Return the Euclidean norm, sqrt(x*x + y*y). This is the length of the vector from the origin to point (x, y). sin(x) Return the sine of x radians. tan(x) Return the tangent of x radians. Angular conversion : degrees(x) Converts angle x from radians to degrees. radians(x) Converts angle x from degrees to radians. Hyperbolic functions : cosh(x) Return the hyperbolic cosine of x. sinh(x) Return the hyperbolic sine of x. tanh(x) Return the hyperbolic tangent of x. The module also defines two mathematical constants : pi The mathematical constant pi. e The mathematical constant e. Figure 4.1 Les fonctions du module math