[PDF] Introduction à la Programmation 1 Python





Previous PDF Next PDF



Exercices corrigés

Python 3. Exercices corrigés Cours no 4 : « Structures de données Python » ... et indexer un élément de la 3è ligne et 4è colonne par m[2][3] ...



cours-python.pdf

22 mars 2018 2.11 Exercices . ... 14.7 Exercice . ... Python est un langage interprété c'est-à-dire que chaque ligne de code est lue puis interprétée ...



Python au lycée - tome 1

La première ligne importe toutes les fonctions du module math la seconde calcule x = 2 (en Exercice. Corrige le code ! Python doit afficher 7 5 9.



tp de langage python 3 2014-2015

le langage Python 3 par l'exemple à l'aide de petits exercices. Contents. 1 Prise en main de Python. 3. 1.1 Programmation Python en ligne de commande .



exos_numpy_corrige

1 Introduction la librairie NumPy pour Python - Exercice pra- Dans l'exemple ci-dessus par exemple nous pouvons récupérer la ligne [11



Recueil dExercices Corrigés Python

Langage Python (Linux). L'interpréteur est lancé en ligne de commande par l'exécution de : python. Cette commande peut être modifiée en fonction de la 



Introduction à la Programmation 1 Python

Exercice 9 (Matrices ??). Étant donnée une matrice (liste à deux dimensions) A avec n lignes et m colonnes



Algo Python - Exercices type - Variables boucles for - Corrigé

En d'autre terme on retourne `a la ligne. L'algorithme 2 en entier affiche donc : Un Deux Trois. Soleil. D. Maximilien Dreveton.



Apprendre à programmer avec Python 3 - INFOREF

Python convient aussi bien à des scripts d'une dizaine de lignes qu'à des Recommencez le même exercice mais avec a = 20 en guise de première ligne ...



Algorithmique et programmation en Python I. — Variable et types

Exercices. 1) Variables et opérations. Exercice 1. Pour chaque exemple suivant on écrit dans un éditeur Python uniquement la ligne indiquée.



[PDF] exercices-python3pdf - Gilles HUNAULT

Cours no 1 : « Premiers pas en Python » 1 Affectez les variables temps et distance par les valeurs 6 892 et 19 7 Calculez et affichez la valeur de la 



[PDF] Recueil dExercices Corrigés Python - Eric Berthomier

Langage Python (Linux) L'interpréteur est lancé en ligne de commande par l'exécution de : python Cette commande peut être modifiée en fonction de la 



[PDF] Introduction à la Programmation 1 Python - Irif

Exercice 14 (Concaténation ?) Écrire une fonction qui prend en paramètre une chaîne de caractères toto et ache une ligne commençant par bonjour suivi du 



[PDF] Python au lycée - tome 1 - Exo7

Dans cette toute première activité tu vas apprendre à manipuler des nombres des variables et tu vas coder tes premières boucles avec Python Tortue (Scratch 



[PDF] TP DE LANGAGE PYTHON 3 - lamsade

Ce TP va vous permettre d'apprendre le langage Python 3 par l'exemple à l'aide de petits exercices Contents 1 Prise en main de Python 3 1 1 Programmation 



[PDF] Exercices python - AlloSchool

Exercices python Les programmes seront rendus sous le nom (votre nom)-programme py ? Exercice 10 11 : Premiers nombres entiers : python ? Corrigé



[PDF] Notions&Exercices1811py - IREM de la Réunion

dans la boîte est noté None en Python globals() est une fonction qui d'échanger les contenus de a et b en une seule ligne de Python:



Télécharger cours et exercices gratuit python en PDF - PDFbibcom

Grâce à ce site vous améliorerez vos connaissances en informatique et vos compétences en informatique vous pourrez choisir entre lire en ligne ou 



[PDF] LE LANGAGE PYTHON : EXERCICES

Le langage python : exercices Page n°1/3 Exercice 1 : Structures alternatives Rajouter à la suite du script précédent les lignes ci-dessous



[PDF] Guide Python Guide pratique & Exercices corrigés - JoseOuinfr

et 1 ?? 3 10 Opérations avec les nombres complexes Les lignes de codes ci-après donnent des exemples 

:

Introduction à la Programmation 1Python

51AE011F

Séance 5 de cours/TD

Université Paris-Diderot

Objectifs:-F aireun bilan ap rèscc, q uestions/réponses. C omprendreles listes de chaînes de ca ractères. C omprendreles listes de listes -Comp rendrel estatut pa rticulierdes listes en mémoire.1 Listes d"autres types

Des listes de chaînes de caractères[Cours]

Une liste p eutconte niraussi des chaînes d eca ractères. P arexemple ,p ourcréer une liste de chaînes de ca ractèrestheBeatlesqui vaut initialement Paul John Ringo

Georges

], on peut procéder ainsi :1theBeatles = ["Paul"," John"," Ringo"," Georges"]ou bien ainsi :

1theBeatles = [""]*42theBeatles[0] =" Paul"3theBeatles[1] =" John"4theBeatles[2] =" Ringo"5theBeatles[3] =" Georges"Exercice 1 (Fonctions et liste de chaînes de caractères,?)

1. Que fait la fonction de signature " funcAB (a)» fournie ci-dessous en supposant qu"elle prend en

paramètre un entier strictement positif?1deff uncAB( a): 2l = [""]* a 3s =" ab"4fori i nr ange( 0,a ,1 ): 5l[i] = s6s = s +" ab"7

8return( l)1

2.Utilisez la fonction p récédentedans une suite d"instructions p ourafficher 5 lignes de la fo rmesuivante :

1ab2abab3ababab4abababab5ababababab(On pourra utiliser la procédure "print».)Exercice 2 (Listes de prénoms,??)

Écrire une fonction prenant en paramètre une liste de prénomslet qui renvoie l"indice d"un prénom delqui

y apparaît deux fois. Si une telle valeur n"existe pas, la fonction renvoie-1.Des listes de listes[Cours]

Les listes sont des valeurs c ommeles autres. Une liste p eutdonc aussi conte nirune liste dans cha cune

de ses cases. On parle alors de liste de listes.

-Remarque :En fait les éléments d"une liste ne sont pas nécessairement de même type, mais dans ce

cours nous nous imposerons de manipuler et de créer des listes dont tous les éléments ont le même

type. P arexemple ,une liste de liste d"entiers p eutvaloir " [[1], [11, 22], [111, 222, 333]]».

La première valeur de cette liste est la liste "[1]» , puis à la deuxième valeur de la liste est "[11,

22]» et la dernière valeur de la liste est "[111, 222, 333]».

P ourc réeret initialiser une liste de listes, il y a différentes façons de p rocéder: 1.

On p eutcréer et initialiser toutes les listes au moment de l"a ffectationde la liste "contenant" : 1l = [ [1, 2], [11, 22], [111, 222]]2.On p eutcréer toutes les liste savec des valeurs initiales égales. Attention :Pour faire cela, la liste

principale contiendra au début des entiers que l"on remplacera par des listes.1l = [0] *32l[0] = [0] * 53l[1] = [0] * 54l[2] = [0] * 5L"exemple précédent crée une liste de3valeurs, et chaque valeur est une liste de5valeurs entières.

Dans cet exemples toutes les listes contenues dans la première liste ont la même taille5, mais on

aurait pu leur donner des tailles différentes comme dans l"exemple suivant :1li = [0] * 32li[0] = [0] * 13li[1] = [0] * 24li[2] = [0] * 33.P ourextraire un élément d"une liste de listes il suffit d"enchaîner les indices, d"ab ordl"indice dans

la liste de listes, puis l"indice dans la liste d"entiers sélectionnée. Par exemple :1l = [ [0], [1, 2], [3, 4] ]2print(l[2][0])3

affiche la valeur3. 2

4.P ourmo difierles valeurs des listes "contenues", on p eututiliser des instructions de m odification

du contenu de listes en précisant leurs indices :1l = [ [0], [1, 2], [3, 4] ]2l[2][0] = 15Cette instruction met la valeur15au premier indice de la troisième liste (la liste qui se trouve à la

fin de la liste de listesl). La déclaration suivante crée la liste "liPascal» valant

"[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1]]» :1liPascal = [0] * 42liPascal[0] = [0]3liPascal[0][0] = 14liPascal[1] = [0] * 25liPascal[1][0] = 16liPascal[1][1] = 17liPascal[2] = [0] * 38liPascal[2][0] = 19liPascal[2][1] = 210liPascal[2][2] = 111liPascal[3] = [0] * 412liPascal[3][0] = 113liPascal[3][1] = 314liPascal[3][2] = 315liPascal[3][3] = 1-On pa rlerade listes à deux dimensions (ou bi-dimensionne lle)p ourdes listes de listes, les listes à trois

dimensions seront des listes de listes de liste, etc.

Exercice 3 (Table de multiplication,?)

1. Créer une liste à deux dimensions tel que l[i][j]vaut(i + 1) * (j + 1)pourietjallant de0

à9.

2.

Où se trouve le résultat de la multiplication de 3par4dans cette liste? Même question pour le résultat

de la multiplication de7par6.Exercice 4 (Carré magique,? ? ?)

Un carré magique est une grille carrée dans laquelle des nombres sont placés de telle sorte que la somme des

nombres de chaque colonne, chaque ligne et de chacune des deux diagonales soit la même. De plus, le carré

doit contenir une fois chaque nombre, de 1 au nombre de cases de la grille. La grille peut être représentée

comme une liste bi-dimensionnel d"entiers. Notre objectif est d"écrire une fonction qui vérifie si une grille de

nombres reçue comme paramètre est un carré magique. 1.

Écrire une fonction carrequi prend une liste de listes d"entiersmen paramètre et qui vérifie quem

représente bien une grille carrée. 2.

Écrire une fonction aplatirqui prend en paramètre une liste de listes d"entiersmqu"on peut supposer

d"être une grille carrée, et qui envoie une liste d"entiers qui contient tous les entiers présents dansm.

Par exemple, appliquée à[[1, 2, 3], [4, 5, 6], [6, 8, 9]], la fonction doit envoyer le résultat

[1, 2, 3, 4, 5, 6, 6, 8, 9]. 3.

Écrire u nefonction domainequi prend une liste d"entierslen paramètre et qui envoie le booléenTrue

si tous les éléments delsont des valeurs entre0(non-inclus) et la longueur de la liste (incluse), et

3

Falsesinon.

4.

Écrire une fonction différentsqui prend une liste d"entierslen paramètre et qui envoie le booléen

Truesi tous les éléments delsont des valeurs différentes etFalsesinon. 5.

Écrire une fonction lignesqui prend une liste de liste d"entiersmreprésentant une grille carrée et un

entieraen paramètre et qui envoie le booléenTruesi la somme des nombres de chaque ligne est égale

àaetFalsesinon.

6.

Écrire une fonction colonnesqui prend une liste de liste d"entiersmreprésentant une grille carrée et

un entieraen paramètre et qui envoie le booléenTruesi la somme des nombres de chaque colonne est égale àaetFalsesinon. 7.

Écrire une fonction diagonalesqui prend une liste de liste d"entiersmreprésentant une grille carrée et

un entieraen paramètre et qui envoie le booléenTruesi la somme des nombres de chaque diagonale est égale àaetFalsesinon. 8.

Enfin, écrire une fonction magiquequi prend une liste de liste d"entiersmen paramètre et qui envoie

Truesimreprésente un carré magique, etFalsesinon. Utilisez les fonctions demandées aux questions

précédentes.Exercice 5 (Léger Gomoku ,? ? ?)

Le Gomoku est un jeu de plateau à deux joueurs, dans lequel pour gagner, chaque joueur doit réussir à aligner

5 pions sur des cases consécutives d"un plateau, horizontalement, verticalement ou en diagonale. On va faire

une version légère oùon ne prendera pas en compte les diagonales. Le plateau est une grille carrée de

taille quelconque supérieure ou égale à 5, et il peut être représenté comme une liste de liste d"entiers. L"entier

vaut 0 si la case est vide, 1 si elle contient un pion du joueur 1, et 2 pour un pion du joueur 2. On souhaite

écrire une fonctionwinGomokuqui reçoit comme paramètre le contenu d"une partie de Gomoku et affiche

Personne

ne gagne ", ou"Joueur1 gagne "ou"Joueur2 gagne "ou"Mauvaisegrille ", selon les cas. 1.

Écrire une fonction isGomokuSquarequi teste si la liste de liste d"entiers donnée en paramètre cor-

respond à une grille carrée de dimension supérieure ou égale à 5, c"est-à-dire chaque liste de la liste

principale doit avoir la même longueur que la liste principale et cette longueur doit être supérieure ou

égale à 5.

2.

Écrire une fonction fiveInARowqui prend en paramètre une liste de liste d"entiers correspondant à

une grille carrée et un numéro de joueur (qui vaudra 1 ou 2) et qui teste si une liste de la grille carrée

contient cinq fois le numéro du joueur à la suite. 3.

Écrire une fonc tionfiveInAColumnqui prend en paramètre une liste de liste d"entiers correspondant

à une grille carrée et un numéro de joueur (qui vaudra 1 ou 2) et qui teste si une colonne de la grille

carrée contient cinq fois le numéro du joueur à la suite. 4. En vous servant des fonctions p récédentes,donner le co dede la fonction winGomoku(si les deux

joueurs vérifient la condition pour gagner, on suppose que c"est le joueur 1 qui gagne).2 Le statut particulier des listes en mémoire

Mémoire et liste[Cours]

Dans la mé moire,on sto ckeégalement les listes et leur c ontenu.

Si aest une variable de type liste référant une liste créée, alors dans la mémoire, la variableasera

associée à la valeur$ioùiest un entier positif, appeléeson adresse dans le tas. Le tas est une mémoire

auxiliairequi est préservée par les appels de fonction et de procédure. 4

-Dans notre mo dèled"exéc utiondes p rogrammes,le contenu d"une liste est rep résentéà côté de la

mémoire des variablesdans une autre mémoire. Cette seconde mémoire, le tas, associe des listes à des

valeurs de la forme$i.

P arexemple : l1l2$1$2$1 = [2,3,4,5] $2 = [-9,-3,0]indique une mémoire où la variablel1réfère la liste[2, 3, 4, 5]et la variablel2la liste[-9,

-3, 0]

Si une exp ressionaccède aux valeurs de la liste (pa rexemple dans " a[2]») alors il faut aller regarder

dans la mémoire quelle est la liste référée par la variablea, par exemple$3et ensuite prendre la valeur

qui se trouve dans la troisième case de la liste$3. Le même procédé s"applique pour les modifications

du contenu de la liste.

Si une liste $in"est référencée par aucune variable dans la mémoire, alors on peut la supprimer.

Comme le contenu du tas est p réservépa rles app elsde fonctions et de p rocédures,on p eutécr iredes

fonctions et des procédures qui modifient les listes passées en paramètres. C"est très pratique de ne

pas avoir à recopier le contenu des listes à chaque appel de procédure car la taille des listes peut être

importante. Exercice 6 (Échange du contenu de deux indices,??)

Soit la procédure suivante :1defs wap( a,i ,j ): 2tmp = a [i]3a[i] = a[j]4a[j] = tmpDonner l"évolution de la mémoire et du tas au cours de l"évaluation des instructions suivantes :

1li = [ 3, 2, 1, 0 ]2swap (li, 1, 2)3swap (li, 0, 3)3 DIY

Exercice 7 (Comptage,??)

Écrire une fonction qui, étant donnée une listelde nombres entiers et un nombre entiern, renvoie :

la liste vide si la liste donnée contient (au moins) un nomb rextel quex<0oux> n,

une liste liden+ 1entiers tel queli[i]soit égal au nombre d"éléments delégaux àisi la liste

ne contient que des nombres compris, au sens large, entre0etn.

Contrat:

Si la liste vaut[0, 1, 2, 2, 0, 0]alors

si le deuxième argument vaut 1, la fonction renverra[] si le deuxième argument vaut 2, la fonction renverra[ 2, 1, 3]Exercice 8 (Suites d"entiers,??)

Toute suite finie d"entiers peut être décomposée de manière unique en une suite de séquences strictement

croissantes maximales. En représentant une suite dans une listel, la liste [1 2 5 7 26 05 24 6 7 8 9 34 6 12 7 8 9 423 15 9 716 63] 5 se décompose ainsi en la liste de 13 listes d"entiers suivante : [ [1 2 5 7] [2 6] [0 5] [2 4 6 7 8 9] [3 4 6] [1 2 7 8 9] [4] [2 3] [1 5 9] [7] [1 6] [6] [3] ].

Les premiers éléments de ces séquences sont, en plus du premier élément de la liste, les éléments (soulignés

1.

Écrire une fonc tionnumRupturesqui une listeld"entiers donnée en paramètre renvoie le nombre

de positions soulignées). 2.

Écrire une f onctionrupturequi, étant donnée une listeld"entiers, renvoie une liste contenant 0

en premier élément et les indices des éléments delinférieurs ou égaux à leur prédécesseur en ordre

croissant. Pour la liste donnée en exemple, la fonction renvoie la liste : [0 4 6 8 14 17 22 23 25 28 29 31 32]. 3.

Écrire une fonction factorisationqui, étant donné une listeld"entiers, renvoie une liste de listes

d"entiers, dont lai-ème liste contient lai-ème plus longue séquence croissante de nombres adja-

cents dans la listel(résultat tel que celui donné dans l"exemple). Indication : on pourra utiliser la

fonctionrupturepour déterminer le nombre de listes et la taille de chaque liste de cette liste de liste.Exercice 9 (Matrices,??)

Étant donnée une matrice (liste à deux dimensions)Aavecnlignes etmcolonnes, un couple d"indices (i,j)

représente unmin-maxde cette matrice si la valeurA[i][j]est un minimum de la ligneiet un maximum de la colonnej, c"est-à-dire A[i][j] =min{A[i][0],...,A[i][m]}A[i][j] =max{A[0][j],...,A[n][j]}.

Ecrivez une fonction prenant en paramètre une liste de liste d"entiers encodant une matrice et qui affiche

l"ensemble de tels couples (i,j). La méthode proposée consiste à effectuer le travail suivant pour chaque

lignei: (1) trouver les minima de la ligneiet en mémoriser les numéros de colonne et (2) pour chacun de

ces rangsj, déterminer sia[i][j]est un maximum pour sa colonne.Exercice 10 (Championnat,? ? ?)

On considère une liste à 3 dimensions stockant les scores d"un championnat de handball. Pournéquipes, la

liste auranlignes etncolonnes et à chacun de ses indices on trouvera une liste de longueur 2 contenant

le score d"un match (on ne tient pas compte de ce qui est stocké dans la diagonale). Ainsi, pour la liste

championnatch, on trouvera dansch[i][j]le score du match de l"équipei+1contre l"équipej+1et dans

ch[j][i]le score du match de l"équipej+1contre l"équipei+1. De même, pour un score stocké, le premier

entier dech[i][j]sera le nombre de but(s) marqué(s) par l"équipei+1dans le match l"opposant à l"équipe

j+1. Par conséquent, dansch[i][j][0]on trouve le nombre de bus obtenu pari+1dans le match l"opposant

àj+1et dansch[i][j][1]on trouve le nombre de bus obtenu parj+1dans le match l"opposant ài+1. On

remarque que le matchch[i][j](match aller) n"est pas le même quech[j][i](match retour). Finalement,

on suppose que lorsqu"une équipe gagne un match, elle obtient 3 points, 1 seul point pour un match nul et

0 point dans le cas où elle perd le match.

1. Écrire une métho denombrePointsqui prend en arguments une liste championnatchde longueurnet

le numéro d"une équipe (entre 1 àn) et qui renvoie le nombre de point(s) obtenu(s) par cette équipe

pendant le championnat. 2. Écrire une méth odestockerScorequi prend en arguments une liste championnatchde longueurn,

le numéroid"une équipe, le numérojd"une autre équipe et le score du match deicontrejet qui

met à jour la listech. 3.

Écrire une métho dechampion qui p renden a rgumentune liste championna tchet qui renvoie le numéro

de l"équipe championne. Une équipe est championne si elle a strictement plus de points que toutes

les autres. Si plusieurs équipes ont le même nombre de points, alors une équipe est meilleure si elle

a marqué strictement plus de buts. Dans le cas d"égalité parfaite (même nombre maximum de points

et même nombre maximum de buts marqués), la méthode renverra 0 pour signaler l"impossibilité de

désigner un champion. 6

Exercice 11 (Maxima locaux,??)

Écrire une fonction qui prend en paramètre une liste d"entiers à deux dimensions (rectangulaire) et calcule le

nombred"entréesintérieuresde la matrice dont tous les voisins sont strictement plus petits. Chaque entrée

intérieure de la matrice a quatre voisins (à gauche, à droite, vers le haut, vers le bas). Par exemple, pour la

matrice

1 4 9 1 4

4 8 1 2 5

4 1 3 4 6

5 0 4 7 6

2 4 9 1 5

la méthode devrait renvoyer2car il y a deux éléments de la matrice (8et7) qui ont uniquement des voisins

plus petits.7

Introduction à la Programmation 1Python

51AE011F

Séance 6 de cours/TD

Université Paris-Diderot

Objectifs:-Boucles while.-V ariablesb ooléennes.

1 La boucle "while"

Boucle non bornée[Cours]

La boucle non bornée permet de répéter des instructions tant qu"une expression booléenne est vraie. Elle est

utile lorsqu"on ne connaît pasa priorile nombre d"itérations nécessaires.1while( expressionb ooléenne): 2instructions à répéter-L"exp ressionb ooléenneest app eléecondition ou enco retest d"a rrêtde la b oucle.

P arexemple, la b ouclesuivante s"a rrêteraq uandla valeur de la va riableentière asera0après avoir

affiché 50 lignes contenant la chaîne "Hello».1a = 502while( a> 0 ): 3print( "Hello")4a = a - 1-Une b ouclenon b ornéep eutne jamais terminer si sa condition est toujours vraie. La plupa rtdu temps,

la non terminaison du programme n"est pas le comportement escompté car on souhaite obtenir un résultat! 1

P arexemple, la b ouclesuivante ne termine jamais et l"instruction " print( "Bonjour")» n"est donc

jamais exécutée :1b = 02while( b= =0 ): 3b = b // 24print( "Bonjour")Exercice 1 (Première boucle,?)

Quelle est la valeur de la variablerà la fin de la suite des instructions suivantes?1n = 492r = 0 1

3while( r* r < n ): 4r = r + 1Exercice 2 (Les "for"s vus comme des "while"s,?)

Réécrivez la suite d"instructions suivante pour obtenir le même comportement en utilisant un "while" à la

place du "for".1a = 02fori i nr ange( 0,3 2,1 ): 3a = a + i4print( a)Exercice 3 (Affichage maîtrisé,?)

Écrire, à l"aide d"une boucle, un programme qui affiche la chaîne"bla"plusieurs fois de suite autant que

possible, sans dépasser les80caractères (longueur standard d"une ligne dans un terminal).Exercice 4 (Terminaison,?)

Qu"affichent les deux séquences d"instructions suivantes? Est-ce que leur exécution se termine?1n = 22while( n> 0 ): 3print( n)1n = 22while( n> 0 ): 3n = n * 24print( n)2 Variables de typeboolPrésentation du typebool[Cours]

Comme toute valeur, une valeur de t ypebool(qui correspond à un booléen) peut être stockée dans

une variable. Rapp el: Il y a deux valeurs p ourle t ypeboolqui sontTrueetFalse.

P arexemple ,on p eutinitialiser une va riableb ooléenneain si: 1b = Falseou bien encore comme cela :

1b = x >52

Dans ce dernier cas, si la valeur contenue dansxest strictement plus grande que5alors l"expression booléenne "x > 5» s"évaluera en la valeurTrue, qui sera la valeur initiale de la variableb. Rapp els: les op érateursb ooléenssont or(ou),and(et) etnot(non).

P arexemple ,les affectations suivantes sont valides : 1b1 = False# b1vaut False. 2b2 = (3 + 2 < 6)# b2 vaut True. 3b1 =n ot( b2)# b1 vaut la negation de True, donc False. 4b2 = b1o rb 2# b2 vaut False or True, donc True. -Attention :le symbole=est utilisé dans les instructions d"affectation tandis que le symbole==est un

opérateur de test d"égalité entre entiers ou entre chaînes de caractères.

Comme toute valeu r,une valeur de t ypeboolpeut être passée en paramètre à une fonction ou une

procédure et renvoyée par une fonction.

Exercice 5 (Évaluer,?)

Quelles sont les valeurs des variablesx,b,d,eetfaprès avoir exécuté les instructions suivantes?1x = 3 + 52b = (x == 5 + 3)3d = (x > x + 1)4e = bo rd 5f = ba ndd 6f = (e != b)Exercice 6 (Parité,?)

Écrire une fonction "isEven (a)» qui prend en paramètre un entier et renvoieTruesi cet entier est pair,

Falsesinon.Exemples d"utilisation de variables booléennes[Cours]

Les va riablesb ooléennesp euventêtre utilisées p oursignaler qu"une condition a été vérifiée, c equi

peut être utile pour arrêter une boucle.

On p eutau ssiutiliser les va riablesb ooléennescomm epa ramètresde fonction p ourfa ireva rierle

comportement selon des conditions. Les va riablesb ooléennessont pa rfoisapp eléesdrap eaux( flagen anglais).

Exercice 7 (Drapeau et recherche,?)

1.

On considère la suite d"instruc tionssuivante qui pa rcourtune liste ld"entiers et affecteTrueà la

variablefoundsi une des cases delvaut3:1l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]2i = 03found = False# flag 4while( i< l en( l)): 5if( l[i]= =3 ): 6found = True7i = i + 1Quelle est la valeur contenue dans la variableiaprès ces instructions?

2.

Même question sur la suite d"instructions suivante : 1l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]2i = 03found = False# flag

3

4while( i< l en( l)a ndn ot( found)): 5if( l[i]= =3 ): 6found = True7i = i + 13.Qu"en déduisez-vous ?

4.

Écrire une fonction " findValueList (l, v)» qui teste si la valeur contenue dansvest présente

dans la liste d"entiersl.Exercice 8 (Paramètre booléen,?)

Écrire une procédure qui énumère les entiers entre1etn. La procédure prend deux paramètres : l"entiern,

et un booléenup. Si le paramètre booléen est vrai, on affiche les entiers de1àn, sinon on affiche les entiers

denà1.3 DIY

Exercice 9 (Comptine,?)

Modifier les instructions suivantes pour que l"accord de kilomètre(s) soit correct.1n = 102while( n> 0 ): 3print( n,e nd="")4print( "k ilometrea p iedc au sel ess ouliers")5n = n - 1Exercice 10 (Palindrome,??)

Un mot est un palindrome si on obtient le même mot en le lisant à l"envers. Par exemple "kayak", "ressasser",

ou "laval" sont des palindromes. Écrire une fonction qui prend en paramètre une chaîne de caractèresset qui

renvoie le booléenTruesi le motsest un palindrome etFalsesinon.Exercice 11 (Logarithme,?)

Écrire une fonction qui prend en paramètre un entier n, et renvoie le nombre de fois qu"il faut diviser celui-ci

par deux avant que le résultat soit inférieur ou égal à 1.Exercice 12 (n-ème chiffre,??)

Écrire une fonction qui prend en paramètres deux entiersketnet renvoie len-ème chiffre dek, ou 0 sik

n"est pas aussi long (par exemple le 2ème chiffre de 1789 est 8).Exercice 13 (Binaire,? ? ?)

Écrire une fonction qui prend en paramètre un entiernet qui renvoie la représentation binaire densous la

forme d"une chaîne de caractères formée de caractères0et1.Exercice 14 (lastOcc,??)

Écrire une fonction "lastOcc(li, x)» qui prend en paramètre une liste d"entiers et une valeur entière. Si

la liste contient cette valeur, la fonction renvoie l"indice de la dernière occurrence de la valeur. Si la liste ne

contient pas cette valeur, la fonction renvoie-1.

Cet exercice a déjà été traité au TD 4, mais on demande de remplacer la boucleforpar une bouclewhile.Exercice 15 (Syracuse,? ? ?)

La suite de Syracuse de premier termep(entier strictement positif) est définie para0=pet a n+1=? ?a n2 sianest pair

3·an+ 1sianest impairpourn≥0

4

Une conjecture (jamais prouvée à ce jour!) est que toute suite de Syracuse contient un termeam= 1. Trouver

le premiermpour lequel cela arrive, étant donnép.Exercice 16 (Itérations,?)

Combien y a-t-il d"itérations dans la boucle suivante :1n = 152while( n> =0 ): 3n = n - 1Même question pour la boucle suivante, en fonction du paramètren:1defn bIterations( n): 2while( n> =0 ): 3n = n - 1Exercice 17 (Logarithme (itéré),??)

1. Le loga rithmee nbase 2 d"un entier n≥1(notélog2n) est le réelxtel que2x=n. On se propose

la partie entière du logarithme en base 2, c"est-à-dire quem=l(n). Par exemple,l(8) =l(9) = 3car

2

Écrire une fonctionloqui prend en paramètre un entiernet renvoie la partie entièrelo (n)de son

logarithme en base 2. On calculeralo (n)en effectuant des divisions successives par 2. 2.

À pa rtirde la fon ctionloprécédente, on peut définir une fonctionloStarainsi :loStar (n)est le

plus petit entieritel que lai-ème itération delosur l"entréenvaille 0. Par exemple,loStar (1)

vaut 1 car dès la première itération,lo (1)vaut 0; ou encoreloStar (2)vaut 2 carlo (2)vaut 1

etlo (1)vaut 0. Pour prendre un exemple plus grand, on aloStar (1500)vaut 4 carlo (1500) vaut 10,lo (10)vaut 3,lo (3)vaut 1 etlo (1)vaut 0; la quatrième itération delosur 1500 vaut donc 0. Écrire la fonctionloStarqui prend en paramètre un entiern.Exercice 18 (Racine cubique,??)

Écrire une fonction qui renvoie la racine cubique d"un entierx, c"est-à-dire le plus petit entieratel quea3≥x.

On peut s"inspirer de l"exercice

1 .Exercice 19 (Racinenième,? ? ?)

Maintenant, écrire une fonction qui renvoie la racinenième d"un entierx, c"est-à-dire le plus petit entiera

tel quean≥x.5

Introduction à la Programmation 1Python

51AE011F

Séance 7 de cours/TD

Université Paris-Diderot

Objectifs:-C onnaîtreses classiques sur les listes. -App rendreà voir quan dun p rogrammeest faux.

1 Devenir incollable sur les listes

Opérations à savoir faire sur les listes[Cours] -Rechercher Dire si un élément est p résentdans une liste Renvo yerla p ositiond"un élément dans la liste (la p remièreou la dernière) Compter le nomb rede fois qu"un élém entest p résentdans une liste. Savoir construire une liste des p ositionsd"un é lémentdans une liste -Modifier Savoir échanger deux éléments de place dans une liste

Savoir renverser une liste

Savoir décaler tous les éléments d"une liste Savoir appliquer une f onctionà tous les éléme ntsd"une liste

Exercice 1 (Présence dans une liste,?)

On considère la fonctionisPresent (el, li)qui renvoieTruesielest dans la listeli.1defi sPresent( el,l i): 2fori i nr ange( 0,l en(li),1 ): 3if( li[i]= =e l): 4return( True)5else: 6return( False)7return( False)8

9defi sPresent( el,l i): 10b = True11fori i nr ange( 0,l en(li),1 ): 12if( li[i]= =e l): 13b = True14else: 15b = False16return( b)17

1

18defi sPresent( el,l i): 19b = True20fori i nr ange( 0,l en(li),1 ): 21return( li[i]= =e l)22

23defi sPresent( el,l i): 24b = False25i = 026while( i < l en( li)a ndb ): 27if( li[i]= =e l): 28b = True29return( b)30

31defi sPresent( el,l i): 32b = False33i = 034while( i < l en( li)a ndn ot(b)): 35b = ba nd( li[i]= =e l)36return( b)code/exoPresent.py

1.

P ourquoiles p ropositionsp récédentessont-elles fausses ?À cha quecas, donnez un exemple de listes

d"entiers et d"éléments pour laquelle la fonction renvoie un mauvais résultat. 2. Prop osezune co rrectionp ourcha cundes cas. Exercice 2 (Occurences dans une liste,?)

On considère la fonctionocc (el, li)qui renvoie le premier indice deeldans la listeliet-1sieln"est

pas dans la liste.1defo cc( el,l i): 2fori i nr ange( 0,l en(li),1 ): 3if( el= =l i[i]): 4return( i)5else: 6return( -1)7return( -1)8

9defo cc( el,l i): 10fori i nr ange( 0,l en(li),1 ): 11if( el= =l i[i]): 12return( i)13return( i)14

15defo cc( el,l i): 16p = 017fori i nr ange( 0,l en(li),1 ): 18if( el= =l i[i]): 19p = i20else: 21p = -122return( p)23

24defo cc( el,l i): 25p = 026fori i nr ange( 0,l en(li),1 ):

2

27if( el= =l i[i]): 28p = i29return( p)30

31defo cc( el,l i): 32p = -133i = 034while( i < l en(li)): 35if( el= =l i[ i]): 36p = i37i = i + 138return( p)39

40defo cc( el,l i): 41p = -142i = 043while( i < l en(li)a ndp ! =- 1) : 44if( el= =l i[ i]): 45p = i46i = i + 147return( p)code/exoOccurence.py

1.

P ourquoiles p ropositionsp récédentessont-elles fausses ?À cha quecas, donnez un exemple de listes

d"entiers et d"éléments pour laquelle la fonction renvoie un mauvais résultat. 2. Prop osezune co rrectionp ourcha cundes cas. Exercice 3 (Compter dans une liste,?)

On considère la fonctioncount (el, li)qui renvoie le nombre de fois que l"élémentelapparaît dans la

listeli.1defc ount( el,l i): 2c = 03fori i nr ange( 0,l en(li),1 ): 4if( li[i]= =e l): 5c = c + 16return( c)7return( c)8

9defc ount( el,l i): 10c = 011fori i nr ange( 0,l en(li),1 ): 12if( li[i]= =e l): 13c = c + 114else: 15c = c - 116return( c)code/exoCounting.py

1.

P ourquoiles p ropositionsp récédentessont-elles fausses ?À cha quecas, donnez un exemple de listes

d"entiers et d"éléments pour laquelle la fonction renvoie un mauvais résultat. 2.

Prop osezune co rrectionp ourcha cundes cas. 3

Exercice 4 (Construire la liste des positions,?)

On considère la fonctionpos (el, li)qui renvoie une liste contenant les positions oùelapparaît dans la

listeli. 1. Que valent les va riablesli1,li2etli3après exécution du programme suivant (en supposant que la

fonctionposest correctement définie).1li1 = pos (2, [3, 4, 5, 8])2li2 = pos (3, [3, 3, 4, 3, 4, 5, 6, 4, 3])3li3 = pos (4, [3, 3, 4, 3, 4, 5, 6, 4, 3])2.On considère les p ropositionssuivantes p ourla fonction pos (el, li)(on suppose que la fonction

countest celle de l"exercice précédent et qu"elle est correcte).1defp os( el,l i): 2lret = []3fori i nr ange( 0,l en(li),1 ): 4if( li[i]= =e l): 5lret = [i]6returnl ret7

8defp os( el,l i): 9n = count (el, li)10lret = [0] * n11fori i nr ange( 0,l en(li),1 ): 12if( li[i]= =e l): 13lret[i] = i14returnl ret15

16defp os( el,l i): 17n = count (el, li)18lret = [0] * n19fori i nr ange( 0,l en(li),1 ): 20if( li[i]= =e l): 21lret[el] = i22returnl ret23

24defp os( el,l i): 25n = count (el, li)26lret = [0] * n27j = 028fori i nr ange( 0,l en(li),1 ): 29if( li[i]= =e l): 30lret[j] = i31returnl retcode/exoPos.py

a

P ourquoiles p ropositionsp récédentessont-elles f ausses?À chaque cas, donnez un exemple de

listes d"entiers et d"éléments pour laquelle la fonction renvoie un mauvais résultat. b Prop osezune co rrection.Exercice 5 (Échanger deux éléments dans une liste,?)

Dans cet exercice, on considère la fonctionswap (i , j, li)qui échange les valeurs des indicesietjde

la listeli. 1.

P ourcomp rendrece qui se p assetout en s"échauffant dîtes ce qu"affiche le p rogrammesuivant :

4

1defm odif( l): 2l[0] = 53

4li = [1, 2, 4, 8, 16, 31]5modif (li)6print( li)code/exoSwap1.py

2. En déduire ce que doit retourner la f onctionswap. 3.

P ourquoila définition suivante de swapn"est pas correcte? Proposez une correction.1defs wap( i, j ,l i): 2if( i< l en( li)a ndj < l en(li)): 3li[i] = li[j]4li[j] = li[i]code/exoSwap2.py

Exercice 6 (Inverser une liste d"éléments,?)

Dans cet exercice, on considère la fonctionreverse (li)qui prend en paramètre une listeliet renvoie la

liste où l"ordre des valeurs est inversée. 1.

Que renvoie donc reverse ([0, 1, 2, 3, 4, 5]).1defr everse( li): 2fori i nr ange( 0,l en( li),1 ): 3li[i] = li [len(li)- 1 - i ]4returnl i5

6defr everse( li): 7fori i nr ange( 0,l en( li),1 ): 8temp = li[i]9li[i] = li [len(li)- 1 - i ]10li [len- 1 - i ]= t emp11returnl i12

13defr everse( li): 14l = []15fori i nr ange( 0,l en( li),1 ): 16l [i] = li [len(li)- 1 - i ]17returnl icode/exoReverse.py

2. a

P ourquoiles p ropositionsp récédentessont-elles fausses ?À chaque ca s,d onnezun exemple de

listes d"entiers et d"éléments pour laquelle la fonction renvoie un mauvais résultat. b

Prop osezune co rrection.

c

P armiles co rrectionsp roposées,quelles sont ce llesqui changent la liste lipassée en paramètre et

quelles sont celles qui la laissent inchangée?Exercice 7 (Décaler les éléments d"une liste,??)

Dans cet exercice, on considère la fonctionshift (li, p)qui prend en paramètre une listeliet modifie

cette liste en décalant (de façon cyclique vers la droite) ses éléments deppositions (en supposant quepest

positif). 1. Que valent les va riablesli1,li2etli3après exécution du programme suivant (en supposant que la fonctionshiftest correctement définie). 5

1li1 = [3, 4, 5, 8]2shift (li1, 1)3li2 = [3, 3, 4, 3, 4, 5]4shift (li2, 2 )5li3 = [1, 2, 3, 4, 5, 6]6shift (li3, 7)1defs hift( li,p ): 2fori i nr ange( 0,l en( li),1 ): 3li [i] = li [i - p]4

5defs hift( li,p ): 6fori i nr ange( 0,l en( li),1 ): 7temp = li [i]8li [i - p] = temp9

10defs hift( li,p ): 11fori i nr ange( 0,l en( li),1 ): 12li [(i + p) %l en(li)]= l i[ i]code/exoShift.py

2. a

P ourquoiles p ropositionsp récédentessont-elles fausses ?À chaque ca s,d onnezun exemple de

listes d"entiers et d"éléments pour laquelle la fonction renvoie un mauvais résultat. b Prop osezune solution. On p ourrap ourcela commencer p arécrire une fonc tionshift1qui décale la liste d"un élément vers la droite et utiliser ensuite cette fonction pour faireshift.2 DIY

Pour certains exercices, un "contrat" est proposé : ce sont des tests que nous vous fournissons pour vérifier

votre réponse. Si votre réponse ne passe pas ces tests, il y a une erreur; si votre réponse passe les tests, rien

n"est garanti, mais c"est vraisemblablement proche de la réponse. Quand aucun contrat n"est spécifié, à vous

de trouver des tests à faire.

Exercice 8 (Primalité,??)

Un entierpest premier sip≥2et s"il n"a pas d"autres diviseurs que1et lui-même. 1. Écrire une fonction primequi prend en paramètre un entiernet qui renvoieTruesinest premier, ou

Falsesinon.

2.

Écrire une fonction nextqui prend en entrée un entierxet qui renvoie le plus petit nombre premier

p≥x. On pourra bien sûr se servir de la fonctionprimeprécédente. 3. Écrire une fonction numberqui prend en entrée un entieryet qui renvoie le nombre de nombres

Contrat:

Pour la fonctionnext:

x=2→2 x=10→11 x=20→23

Pour la fonctionnumber:

x=10→4 x=20→8 6

Exercice 9 (Multiplication de matrices,??)

Dans cet exercice, on suppose qu"une matriceAàmlignes etncolonnes est encodée par une liste de listes

contenantmlistes de taillen. Par exemple, la matrice ?1 2 3

4 5 6?

est encodée en Python par[[1, 2, 3], [4, 5, 6]].

Étant données deux matricesA(àmlignes etncolonnes) etB(ànlignes etpcolonnes), le produit matriciel

le coefficientCi,jdeCse trouvant à lai-ème ligne et laj-ième colonne est égal à : C 1.

Écrire une fonction isMatrix (A)qui prend en paramètre une liste de listes d"entiers et vérifie qu"il

s"agit de l"encodage d"une matrice (c"est à dire que chaque sous-liste à la même longueur); elle renvoie

Truedans ce cas etFalsesinon.

2.

Écrire une fonction nbLines (A)qui prend en paramètre une liste de listes d"entiers qui encode une

matrice et renvoie son nombre de lignes. 3.

Écrire une fonction nbColumns (A)qui prend en paramètre une liste de listes d"entiers qui encode

une matrice et renvoie son nombre de colonnes. 4.

Écrire une fonction matriProx (A, B)qui prend en paramètre deux listes de listes d"entiers, vérifie

qu"il s"agit de deux matrices, et vérifie que le nombre de colonnes deAest égal au nombre de lignes

deB. Si ces conditions ne sont pas satisfaites, la fonction renvoie[]et sinon elle renvoie une liste de

listes contenant la matrice correspondant au produit matriciel deAparB.Exercice 10 (Addition,? ? ?)

Le but de cet exercice est de programmer l"addition décimale. Les deux nombres à additionner sont donnés

sous forme de listes.

Par exemple,x = [7, 4, 3]ety = [1, 9], dont la somme doit être retournée sous forme de liste, dans

cet exemple,[7, 6, 2].

Écrire une fonctionaddqui prend en paramètre deux listes et fait l"addition des deux nombres représentés par

les listes.

Par exemple, si les entrées sont les listest1 = [3, 4, 7], t2 =[9, 1], cela représente la somme743+19.

On calcule d"abord9 + 3ce qui fait2avec une retenue de1. Puis on calcule4 + 1, plus la retenue, ce qui

quotesdbs_dbs42.pdfusesText_42
[PDF] texify plickers

[PDF] plickers en francais

[PDF] questionnaire plickers

[PDF] la masse le volume la pression et la quantité de matière exercices

[PDF] quantité de mouvement exercices

[PDF] exercices quel quelle quels quelles

[PDF] exercices quel quelle quels quelles qu'elle qu'elles cm2

[PDF] homophones quel quelle qu'elle cm2 leçon

[PDF] quel quels quelle quelles qu'elle qu'elles règle

[PDF] homophone quoique

[PDF] agnès envisage de peindre la façade de son hangar

[PDF] comment calculer l'apport énergétique journalier

[PDF] calculer valeur energetique d'un repas

[PDF] qu est ce qu un régime hypocalorique

[PDF] sujet bac ett sti2d 2013 corrigé