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 typesDes 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 RingoGeorges
], 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 enparamè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. 24.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
3Falsesinon.
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 deuxjoueurs 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 longueurnetle 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. 6Exercice 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
matrice1 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.7Introduction à 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! 1P 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 13while( 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
34while( 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 DIYExercice 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 pair3·an+ 1sianest impairpourn≥0
4Une 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 proposela 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.5Introduction à 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 listeSavoir renverser une liste
Savoir décaler tous les éléments d"une liste Savoir appliquer une f onctionà tous les éléme ntsd"une listeExercice 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
118defi 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 ):
227if( 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 lafonctionposest 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
aP 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 :
41defm 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. aP 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. bProp osezune co rrection.
cP 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). 51li1 = [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. aP 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 DIYPour 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, ouFalsesinon.
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 nombresContrat:
Pour la fonctionnext:
x=2→2 x=10→11 x=20→23Pour la fonctionnumber:
x=10→4 x=20→8 6Exercice 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 34 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] 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é