• Aucun résultat trouvé

Les boucles FOR sous Python

N/A
N/A
Protected

Academic year: 2022

Partager "Les boucles FOR sous Python"

Copied!
4
0
0

Texte intégral

(1)

MPSI - 2017/2018 Les boucles For http://pascal.delahaye1.free.fr/

Fiche n

06 : Les boucles For

R´edig´ee par Pascal Delahaye

Cette fiche contient des ´el`ements de cours `a assimiler pour le cours de la semaine suivante.

Vous devez imp´erativement :

• Travailler avec un ordinateur afin de v´erifier une `a une les diff´erentes instructions qui sont pr´esent´ees.

• V´erifier et confirmer votre assimilation en effectuant tous les exercices d’entrainement propos´es `a la fin du poly.

• Pr´evoir environ 1h30 de travail personnel.

Une ´evaluation de 10mn sera effectu´ee au prochain cours pour v´erifier la qualit´e de votre travail d’auto- apprentissage.

I] Introduction et syntaxe

On emploit une boucle ”for” lorsque l’on souhaite effectuer la mˆeme s´erie d’instructions un nombre de fois d´etermin´e.

D´efinition 1 : It´erable

Les 3 structures de donn´ees ”liste”, ”chaine de caract`eres” et ”tuple”, vues en d´ebut d’ann´ee sont des it´erables.

Mˆeme si elles diff`erent de part leur syntaxe et leur utilisation, elles correspondent toutes les 3 `a une collection ordonn´ees de valeurs.

1. la liste [1,2,3,4] a pour composantes les valeurs 1, 2, 3 et 4

2. la chaine ”bahut” a pour composantes les lettres ”b”, ”a”, ”h”, ”u” et ”t”

3. le tuple (a, b, c, d) a pour composante les valeursa, b,c etd.

Une boucle ”for” a la structure suivante : Structure d’une boucle ”for” :

Python

for i in iterable :

instruction(s) # Ne pas oublier l’indentation de 4 espaces

Pour la variable i prenant tour `a tour toutes les composantes de l’it´erable, on demande `a l’ordinateur d’effectuer la s´erie d’instructions qui suit.

Lorsque l’on souhaite faire varier la variable courante ”i” dep`a qpar pas de 1, l’it´erable choisi sera : range(p,q+1)

1

(2)

MPSI - 2017/2018 Les boucles For http://pascal.delahaye1.free.fr/

II] Quelques exemples ` a bien maˆıtriser

1. Affichages multiples :

Si l’on souhaite afficher `a l’´ecran tous les nombres pairs de 0 `a 20 :

Python

for i in range(1,11) : print(2*i)

2. Pour calculer la sommeS100=

100

X

k=1

1 k :

Python

S = 0

for i in range(1,101) : S = S + 1/i

3. Pour calculer le produitP100=

100

X

k=1

2k 2k+ 1 :

Python

P = 1

for k in range(1,101) : P = P*(2*k)/(2*k+1) P

4. Pour s´electionner les composantes d’indice pair d’une liste L :

Python

L = [0,1,2,3,4,5,6,7,8,9,10]

Pair = []

n = len(L)

for i in range(0,n//2 + 1): # 2*i repr´esente l’indice du terme s´electionn´e Pair.append(L[2*i])

Pair

5. Pour calculer le termeu20de la suite

u0= 1

un+1=u2n−un :

Python

U = 0

for i in range(1,21): # i repr´esente l’indice du terme de la suite calcul´e U = U^2 - U # On d´ecale d’un cran la valeur de U

U

6. Pour calculer le termeu20de la suite de Fibonacci

 u0= 0 u1= 1

un+2=un+1+un

:

Python

U0,U1 = 0,1

for i in range(2,21): # i repr´esente l’indice du terme de la suite calcul´e U0, U1 = U1, U0 + U1 # on d´ecale d’un cran les valeurs u0 et U1

U1

7. SoitX = range(0,101).

Pour construire la liste Y contenant les images des valeurs de X par la fonctionf :f(x) = cos(x).

Python

from math import cos # importation de la fonction cos de la biblioth`eque math Y = []

for x in X : # x prend tour `a tous toutes les valeurs de X Y.append(cos(x))

Y

2

(3)

MPSI - 2017/2018 Les boucles For http://pascal.delahaye1.free.fr/

Plus rapidement, on peut ´egalement utiliser la syntaxe suivante, sp´ecifique au langage Python :

Python

from math import cos

Y = [cos(i) for i in range(0,101)]

8. On donne POINTS une liste contenant des couples de r´eels.

Pour d´eterminer les listes X et Y contenant respectivement les premi`eres et deuxi`emes composantes de chaque couple.

Python

X,Y = [],[]

for P in POINTS : X.append(P[0]) Y.append(P[1]) X,Y

III] Exercices

Exercice : 1

(∗) Construire une liste contenant toutes les valeurs dek2pour kallant de 1 `a 100.

Exercice : 2

(∗) D´eterminer le termeu1000 de la suite (un) d´efinie par :





u0= 0.1

un+1= 3un si 3un <1

un+1= 3un−1 si 1≤3un<2 un+1= 3un−2 sinon

.

On dit que cette suite est chaotique car une l´eg`ere modification de la valeur initiale u0 engendre des valeurs tr`es diff´erentes pourn grand. V´erifiez ceci en prenantu0= 0.1000000001

Exercice : 3 (∗)

1. Que fait le programme suivant :

Python

def mystere L : n = len(L) L1 = []

L2 = []

for k in range(0,n):

if L[k] % 2 == 0 : L1.append(L[k]) if L[k] % 3 == 0 : L2.append(L[k]) L1,L2

2. Construire alors un programme qui extrait de L1 et L2 les composantes qui sont multiples de 6.

Exercice : 4

(∗) Sachant que la somme un =P

k = 0n(1)2

k+1

(2k+1)! converge vers π4, calculer l’approximation deπ que donne le terme u10.

Exercice : 5 (∗) On d´efinit :

3

(4)

MPSI - 2017/2018 Les boucles For http://pascal.delahaye1.free.fr/

A= 20! B= 311 C= 1−12+1314+1516

1. ExprimerA,B et Cen utilisant les symbˆolesP ouQ

.

2. Donner alors les instructions permettant de calculer ces 3 valeurs.

Exercice : 6 (∗)

1. Construire un programme de codage d’un texte dont le principe est de d´ecomposer le texte en deux textes regroupant pour le premier les lettres de rang paire et pour le deuxi`eme les lettres de rang impaire.

2. Construire ensuite la proc´edure de d´ecodage associ´ee.

Exercice : 7

(∗) Construire un programme de calcul du terme d’indicendes deux suites suivantes :

1. (un) :

u0= 0.5

un+1=unsin(un)

2. (vn) :

v0= 0.5 v1= 1

vn+2=vn+1vn

Exercice : 8

(∗) SoitX = range(-5,6).

Construire la liste Y contenant les images des valeurs de X par la fonctionf :f(x) = sin(x).

Exercice : 9 (∗)

1. Construire une fonction renvoyant la liste des diviseurs strictement positif d’un entier natureln.

2. Un entier naturel est dit parfait lorsqu’il est ´egal `a la somme de ses diviseurs stricts. Vous v´erifierez facilement que 6 est un nombre parfait.

En adaptant la fonction pr´ec´edente, d´eterminer une fonction bool´eenne permettant de tester si un nombre est parfait ou pas.

3. Utiliser la fonction pr´ec´edente pour d´eterminer tous les nombres parfaits compris dans l’intervalle [[1,1000]].

Exercice : 10

(∗) Construire une fonction :

- vous demandant le capital plac´e en banque, le taux d’int´erˆet annuel et la dur´ee du placement.

- vous affichant le montant de votre capital chaque ann´ee du placement.

4

Références

Documents relatifs

Les créateurs de ce code se limitèrent à 7 bits pour coder un caractère : celui-ci pouvait donc être stocké en mémoire sur un octet (8 bits), puisqu'ils réservaient toujours le

Bon, c’est sûr que la motricité fine, effectivement dans tous les exercices de motricité fine où on peut voir… parfois, c’est pas flagrant, il y a un enfant qui peut tout à

Écrire une procédure demandant les coefficients a , b et c d’un polynôme du second degré et donnant en retour le nombre de racine du polynôme et les racine quand il y en a..

Nous avons vu que si, dans les deux cas, nous partons et aboutissons aux mˆeme ´etats, pour la d´etente de Joule, nous n’avons aucun ´echange avec l’ext´erieur, aucune

Un message codé, assez long, dans lequel chaque lettre a été codée par une autre toujours de la même façon, comme le codage affine, est assez facile à attaquer en s’appuyant

Ce qui manque à ce paon : c'est bien voir, j'en conviens ; Mais votre chant, vos pieds, sont plus laids que les siens, Et vous n'aurez jamais sa queue. Jean-Pierre Claris de

♦ D´efinition : Dans un r´ef´erentiel ℛ, on attribue, `a tout point

Pour vous aider à la création d'une diapositive, PowerPoint vous offre plusieurs outils que vous retrouverez dans différentes barres d'outils.. A partir du menu Fichier,