Vous êtes sur la page 1sur 15

Lycée Malherbe Année scolaire 2018-2019 MPSI - Informatique pour tous

TD no 1 - À la découverte de Python (Corrigé)


Cette année, nous utiliserons le langage de programmation Python.

Qu’entend-on par langage de programmation ?

Vous avez vu/vous verrez en CM qu’un ordinateur réalise des opérations avec des 0 et des 1. Il faut
donc que “quelqu’un” lui dise quelles opérations faire sur quels nombres binaires (ce que l’on appelle
une instruction). Si l’on devait expliciter toutes les instructions directement avec des 0 et des 1, vous
n’auriez pas fini de calculer 3+4 à la fin de ce TD...
Un langage de programmation permet d’entrer les instructions de manière (plus ou moins) explicite,
et de les traduire en binaire, puis de transmettre la réponse, là encore de manière explicite.
Chaque langage possède sa propre syntaxe, qui doit être scrupuleusement respectée.

Pour programmer de façon commode, on utilise le petit logiciel Pyzo (appelé IDE). Une icône vous
permet d’y accéder. La voyez-vous ?

Ce logiciel possède deux grandes fonctionnalités :


♣ une console pour exécuter rapidement des commandes sans les conserver : on parle d’interpréteur ;
♣ un éditeur de texte (évolué) permettant d’écrire des programmes plus conséquents.

Comme tout langage informatique Python a évolué depuis sa création en 1989 par Guido van
Rossum (Pays-Bas). En l’an 2000 sort Python 2.0, puis en 2008 Python 3.0, que nous utiliserons cette
année. Attention : quelques incompatibilités entre Python 2.0 et Python 3.0.
Nous utiliserons Python 3.4.1 cette année.
Vous pouvez utiliser les machines du lycée, ou bien vos ordinateurs personnels, à votre convenance.
Dans le 2ème cas, il vous faudra installer au préalable Pyzo ou tout autre outil permettant de programmer
en Python 3 (et non pas Python 2, j’insiste !).
1 L’interpréteur de Pyzo
Commencez par dérouler le menu “Python” au-dessus de la console, et aller dans “Edit shell confi-
gurations”. Décocher si nécessaire l’option “Use IPython shell if available”, et le cas échéant, cliquer sur
“New shell” dans le menu déroulant.

1.1 Hello World !


“Hello World !” est un moyen de comparer divers langages de programmation sur une tâche très
simple : afficher sur l’écran les mots “Hello World !”.

1 Tapez simplement dans la console (par défaut la fenêtre en haut de l’écran), après l’invite de
commande, ou prompt (<<< ici)

"Hello World!"

Après avoir tapé cette première commande, vous devriez récupérer la main avec une nouvelle invite.
Le système attend alors que vous rentriez une nouvelle instruction.

1
On peut également séparer les instructions par des point-virgules.

2 Tentez "Hello World!" ; 2+2 ;


Que remarquez-vous ?
1 >>> "Hello World!" ; 2+2 ; 2*3 ; "Python est chouette!" ;
2 ’Hello World!’
3 4
4 6
5 ’Python est chouette!’
Les expressions sont évaluées.

1.2 Premières opérations

3 Entrez les opérations suivantes (ou bien avec des points-virgules, mais plutôt l’une après l’autre, en
tapant sur Entrée entre chaque, pour récupérer l’invite, et comprendre ce qu’elles font (si vous avez un
doute, testez avec d’autres nombres) :
3+4 ; 5*3 ; 5*3.0 ; 5**3 ; 37/6 ; 37//6 ; 37%6
1 >>> 3+4
2 7
3 >>> 5*3
4 15
5 >>> 5*3.
6 15.0
7 >>> 5**3
8 125
9 >>> 37/6
10 6.166666666666667
11 >>> 37//6
12 6
13 >>> 37%6
14 1
— 3+4 : somme d’entiers ;
— 3*4 : produit d’entiers ;
— 5*3.0 : produit d’un entier par un flottant ;
— 5**3 : calcul de puissance ;
— 37/6 : division flottante ;
— 37//6 : quotient dans la division euclidienne ;
— 37%6 : reste dans la division euclidienne.

4 Calculez la valeur de 4672 ˆ 687 ˆ 1975 ˆ 6478. On aimerait ensuite la valeur de 4572 ˆ 687 ˆ 1975 ˆ
6478. Comment faire pour ne pas tout retaper ?
Il suffit d’utiliser la flèche haute pour remonter dans l’historique de la console.

5 Laissez un espace en début de ligne, puis rentrez une instruction quelconque. Que constatez-vous ?
Réessayer en commençant la ligne par une tabulation. Verdict ?
Python se distingue d’autres langages de programmation par le fait que l’indentation (espaces et
tabulations) a un sens. Un code mal indenté ne pourra pas être interprété ! Nous y reviendrons quand

2
nous utiliserons l’éditeur.

6 Entrez la commande 37+4 # 35-5. Quel est le rôle (très pratique) du symbole # ?
Mettre des morceaux de code en commentaire. Très utile pour commenter des programmes complexes
dans l’éditeur.

2 Variables

Définition. Une variable est une zone de la mémoire de l’ordinateur qui :


— porte un nom ;
— contient de l’information (une valeur).

2.1 Affectation
En Python, une valeur est affectée à une variable par l’instruction =

Remarques. On rencontre dans d’autres langages :=


En pseudo-code, on peut écrire Ð

Le nom de la variable peut contenir des lettres, des chiffres (mais pas au début) ou le caractère
underscore (_).

7 Entrez les instructions suivantes :


a=3 ; 6=b Conclusion ?
1 >>> a=3 ; 6=b
2 File "<stdin>", line 1
3 SyntaxError: can’t assign to literal
Le signe = n’est pas commutatif. La deuxième instruction n’a pas de sens.

8 Les variables peuvent ensuite être utilisées directement. Testez


a=3 ; b=6 ; a+b ; a=b ; a+b
En affichant le contenu des variables après chaque instruction. . .
1 >>> a = 3
2 >>> a
3 3
4 >>> b = 6
5 >>> b
6 6
7 >>> a + b
8 9
9 >>> a = b
10 >>> a
11 6
12 >>> a + b
13 12

3
9 On considère la suite d’instructions suivante :
a=4 ; b=5 ; a=a+b ; b=b-a ; c=a+b
Devinez la valeur de c et ensuite vérifiez.
En affichant le contenu des variables après chaque instruction. . .
1 >>> a = 4
2 >>> a
3 4
4 >>> b = 5
5 >>> b
6 5
7 >>> a = a+b
8 >>> a
9 9
10 >>> b = b-a
11 >>> b
12 -4
13 >>> c = a+b
14 >>> c
15 5

10 Comprenez les syntaxes suivantes. a ; a *= 5 ; a ; a += 2 ; a ; a /= 5 ; a


Par exemple, a *= 5 est synonyme de a = a*5.
1 >>> a
2 6
3 >>> a *= 5
4 >>> a
5 30
6 >>> a += 2
7 >>> a
8 32
9 >>> a /= 5
10 >>> a
11 6.4

11 Soient g et h deux variables affectées d’une certaine valeur. Ecrire une suite de commandes per-
mettant d’échanger les valeurs de g et h.
1 >>> g,h = 5,6
2 >>> tmp = g
3 >>> g = h
4 >>> h = tmp
5 >>> g
6 6
7 >>> h
8 5

12 Python autorise une affectation de plusieurs variables en une seule fois. Testez

4
g,h=5,6 ; g ; h
Proposez une solution plus courte pour l’échange des valeurs de g et h en utilisant une affectation
double.
1 >>> g,h = 5,6
2 >>> g,h = h,g
3 >>> g
4 6
5 >>> h
6 5

2.2 Types
La valeur contenue dans une variable est un objet qui appartient à un certain type qui définira les
opérations possibles (ceci sera revu en cours).
En Python, pour connaı̂tre le type d’une variable, il suffit d’utiliser la commande type.

13 Entrer les affectations suivantes et vérifier le type de chaque variable :


a='Bonjour'; b=True ; c=2 ; d=2.5 ; e=5+2j ; f=[1,4,5,9,10] ; g=(1,8,4,5)

1 >>> a=’Bonjour’
2 >>> b=True
3 >>> c=2
4 >>> d=2.5
5 >>> e=5+2j
6 >>> f=[1,4,5,9,10]
7 >>> g=(1,8,4,5)
8 >>> type(a)
9 <class ’str’>
10 >>> type(b)
11 <class ’bool’>
12 >>> type(c)
13 <class ’int’>
14 >>> type(d)
15 <class ’float’>
16 >>> type(e)
17 <class ’complex’>
18 >>> type(f)
19 <class ’list’>
20 >>> type(g)
21 <class ’tuple’>
On trouve des commandes s’appliquant uniquement à certains types.

14 Appliquez par exemple la commande len() à chacune des variables ci-dessus. Quel est le rôle de
cette commande ?
1 >>> len(a)
2 7
3 >>> len(b)
4 Traceback (most recent call last):

5
5 File "<stdin>", line 1, in <module>
6 TypeError: object of type ’bool’ has no len()
7 >>> len(c)
8 Traceback (most recent call last):
9 File "<stdin>", line 1, in <module>
10 TypeError: object of type ’int’ has no len()
11 >>> len(d)
12 Traceback (most recent call last):
13 File "<stdin>", line 1, in <module>
14 TypeError: object of type ’float’ has no len()
15 >>> len(e)
16 Traceback (most recent call last):
17 File "<stdin>", line 1, in <module>
18 TypeError: object of type ’complex’ has no len()
19 >>> len(f)
20 5
21 >>> len(g)
22 4
Longueur d’une chaı̂ne de caractère, d’une liste, ou d’un tuple.
Certaines commandes ou opérations peuvent avoir un sens différent suivant le type de l’objet auquel
on les applique.

15 Essayez par exemple 'ornitho'+'rynque'. Quel est le nom de cette opération ?


Le + réalise la concaténation des chaı̂nes de caractères.
Quelques exemples de types :

2.2.1 Nombres entiers


(en anglais integer, d’où le type int)

2.2.2 Nombres “flottants”


(anglais float)
Ce sont les nombres à virgule, on en reparlera.

2.2.3 Chaı̂nes de caractères


(en anglais string d’où le type str)
Elles sont délimitées par des apostrophes ', ou des guillemets ".

16 Définissez par exemple la variable s contenant la chaı̂ne kangourou et koala.



1 s1="kangourou et koala"
2 print(s1)
 

17 On a vu l’opération + sur les chaı̂nes. Par analogie, comment créer simplement la chaı̂ne

"pythonpythonpythonpythonpython" ?

1 print(5*"python")
 

6
2.2.4 Listes
Une liste est une succession d’objets séparés par des virgules et délimités par des crochets. Les objets
peuvent être de n’importe quel type.

18 Entrer par exemple L=[3,6,'koala',193,[2,5],True]. Combien d’objets comporte cette liste ?


Tester les commandes L[0], L[2], L[-1].
1 >>> L = [ 3,6,’koala’,193,[2,5],True ]
2 >>> len(L)
3 6
4 >>> L[0]
5 3
6 >>> L[2]
7 ’koala’
8 >>> L[-1]
9 True
A retenir : quand on numérote des objets en Python, on commence toujours par 0.

19 Cela est vrai également pour les chaı̂nes de caractères : vous avez défini s1 contenant la chaı̂ne
kangourou et koala, quelle commande vous permet de récupérer la lettre g présente dans cette chaı̂ne ?
s1[3]
L’emploi des listes sera largement approfondi dans un TD ultérieur.

2.2.5 Booléens
Les booléens constituent un type spécial dont les valeurs sont particulièrement simples : il n’y en a
que deux, True et False. Ils servent à représenter le résultat de l’évaluation d’expressions logiques qui
peuvent prendre soit la valeur vraie, représentée par True, soit la valeur fausse, représentée par False.
Ils seront très utiles dans les structures conditionnelles (si telle condition est vérifiée alors effectue telle
opération, sinon effectue telle autre opération...)

20 Essayez les instructions suivantes :


2==3 ; 2<3 ; 2!=3
1 >>> 2==3
2 False
3 >>> 2<3
4 True
5 >>> 2!=3
6 True
Le signe == représente maintenant une égalité au sens mathématique, ce n’est donc pas la même chose
que le signe =, qui représentait une affectation.

21 Plusieurs expressions booléennes peuvent être liées par les connecteurs logiques and, or et not :
t=True ; f=False ; not t ; not f ; t and f ; t or f
1 >>> t=True
2 >>> f=False
3 >>> not t

7
4 False
5 >>> not f
6 True
7 >>> t and f
8 False
9 >>> t or f
10 True

2.2.6 Conversion de types


On peut convertir un type en un autre (on parle de transtypage).

22 Essayer :
1 >>> a=2 ; a,type(a) ; a2=float(a) ; a2,type(a2)
2 >>> b=2.3 ; b,type(b) ; b2=int(b) ; b2,type(b2)
3 >>> c=’11’ ; c,type(c) ; c2=int(c) ; c2,type(c2)
4 >>> d=True ; d,type(d) ; d2=int(d) ; d2,type(d2)
5 >>> e=2.3 ; e,type(e) ; e2=str(e) ; e2,type(e2)

1 >>> a=2 ; a,type(a) ; a2=float(a) ; a2,type(a2)


2 (2, <class ’int’>)
3 (2.0, <class ’float’>)
4 >>> b=2.3 ; b,type(b) ; b2=int(b) ; b2,type(b2)
5 (2.3, <class ’float’>)
6 (2, <class ’int’>)
7 >>> c=’11’ ; c,type(c) ; c2=int(c) ; c2,type(c2)
8 (’11’, <class ’str’>)
9 (11, <class ’int’>)
10 >>> d=True ; d,type(d) ; d2=int(d) ; d2,type(d2)
11 (True, <class ’bool’>)
12 (1, <class ’int’>)
13 >>> e=2.3 ; e,type(e) ; e2=str(e) ; e2,type(e2)
14 (2.3, <class ’float’>)
15 (’2.3’, <class ’str’>)

23 Affectez à a la valeur 293, à b la valeur 3254 et à c la valeur 9852. Comment créer facilement le
nombre 29332549852 ?

1 a=293
2 b=3254
3 c=9852
4 d=int(str(a)+str(b)+str(c))
5 print(type(d),d)
 

2.3 Désaffecter une variable ‹


On peut désaffecter une variable avec la commande del.

24 Testez a=3 ; a ; del a ; a

8
3 Modules
On a vu comment effectuer les quatre opérations élémentaires, les puissances et la division euclidienne.
?
Qu’en est-il des autres opérations mathématiques (exp, ln, cos, sin, ...) ?

25 Essayez directement exp(0)


1 >>> exp(0)
2 Traceback (most recent call last):
3 File "<stdin>", line 1, in <module>
4 NameError: name ’exp’ is not defined
Ces opérations sont évidemment possibles dans Python mais elles ne sont pas accessibles par défaut,
elles sont contenues dans un module, en l’occurence le module math. D’autres modules apporteront des
outils graphiques, de bases de données, de probabilités, de calcul scientifique...

Les modules sont importés une seule fois en début de fichier. Il existe différentes façons d’importer un
module .
En tapant au préalable

from math import *

l’utilisation se fera simplement avec exp(0), sqrt(7) etc.


Si l’on n’a besoin que d’une seule fonction du module, on peut faire

from math import exp

et pour l’utilisation exp(0)


Solutions hautement insatisfaisantes, car on peut être amené à importer plusieurs modules contenant
des fonctions différentes mais portant le même nom.

En fait, on prendra l’habitude d’utiliser une des deux solutions suivantes :


— import math : on doit alors écrire math.exp(0) pour utiliser la fonction exp du module math
— import math as m : on écrit alors m.exp(0) pour utiliser la fonction exp du module math

Pour connaı̂tre la syntaxe des fonctions d’un module, on recherche dans l’aide :
help('math.cos') pour de l’aide sur une commande, ou help('math') pour l’ensemble des com-
mandes incluses dans le module.

?
26 Déterminez une valeur approchée de 17 et de lnp17q. Cherchez dans l’aide quelle commande permet
d’obtenir la partie entière d’un nombre.
La notation ln est assez peu utilisée en dehors du milieu scolaire !
1 log(...)
2 log(x[, base])
3
4 Return the logarithm of x to the given base.
5 If the base not specified, returns the natural logarithm (base e) of
x.

1 import math
2 print(math.sqrt(17))

9
3 print(math.log(17))
4 print(math.floor(3.14))
 

4 L’éditeur de Pyzo
4.1 Un premier programme dans l’éditeur
Pour l’instant, les instructions que nous avons écrites ont été interprétées une par une, successivement.
Très vite, il devient nécessaire d’écrire des suites d’instructions (appelées programmes) complexes et
structurées, et de les sauvegarder, les modifier, les compléter. . .
Pas possible dans l’interpréteur. . .

27 Si nécessaire, créez un nouveau fichier dans Pyzo (Fichier/Nouveau ou Ctrl+N).


La fenêtre que vous obtenez est différente : pas de >>> pour entrer des commandes.

28 Entrez plusieurs instructions et observez. Comment exécuter les instructions ?


Il ne se passe rien, Python n’exécute pas ces commandes. Pour les exécuter toutes, cliquez sur
Exécuter / Exécuter le fichier, ou mieux, appuyez sur Ctrl + E. Les instructions sont alors exécutées
dans la console.

29 Que se passe-t-il quand vous tapez le programme suivant ? Expliquez.



1 2+2
2 print(2*3)
 

1 6
Les deux lignes d’instructions sont toutes les deux exécutées, mais seul le résultat de la deuxième
expression est affiché. Pour afficher quelque chose avec l’éditeur, il faut utiliser print.

4.2 Vers la suite du cours ‹


Dans la suite, vous verrez comment écrire des tests, des boucles (conditionnelles ou non), des fonc-
tions. . . La fin de ce TD, pour ceux qui ont terminé le reste, fournit une introduction aux tests, boucles
et fonctions.

30 Entrez les commandes suivantes dans l’éditeur puis exécutez-les.



1 for i in range(6,10):
2 print(i)
3 print(’koala’)
4 print(-i)
5 print(’kangourou’)
 

Que font les mots-clés for et range ? Voyez-vous le rôle fondamental de l’indentation (que vous pouvez
réaliser à l’aide de la touche tabulation et/ou d’espaces) ?
Le mot-clé for permet de réaliser une boucle. Boucler sur range(6,10) permet de parcourir les
nombres entre 6 et 9.
Les indentations permettent de séparer les blocs d’instructions. Les blocs sont des séries d’instructions
qui s’exécutent dans un cas précis (condition, boucle. . . ).
1 6

10
2 koala
3 -6
4 7
5 koala
6 -7
7 8
8 koala
9 -8
10 9
11 koala
12 -9
13 kangourou
Les boucles/tests peuvent être imbriqués. On distinguera alors plusieurs niveaux d’indentation.

31 Tentez de deviner ce qui apparaı̂tra lorsque vous aurez exécuté la suite d’instructions suivante, et
ensuite vérifiez sur l’ordinateur

1 for i in range(2,6):
2 print(i)
3 for j in range(1,4):
4 print([i,j])
 

On affiche les éléments d’un produit cartésien. . .
1 2
2 [2, 1]
3 [2, 2]
4 [2, 3]
5 3
6 [3, 1]
7 [3, 2]
8 [3, 3]
9 4
10 [4, 1]
11 [4, 2]
12 [4, 3]
13 5
14 [5, 1]
15 [5, 2]
16 [5, 3]

32 ‹ Tapez le petit programme suivant. Pourquoi fonctionne-t-il ?



1 print("********* Ceci est un petit programme pour deviner votre ^
age
****************\n")
2
3 res = 0
4
5 for k in range(7):
6 for i in range(128):
7 if i%(2**(k+1)) >= 2**k:

11
8 print(str(i),end=" ")
9 print()
10 if input("Votre a
^ge figure-t-il dans cette liste? (oui/non) ")=="oui":
11 res += 2**k
12 print()
13
14 print("**** Vous avez "+str(res)+" ans!!! ******")
 

Appréciez les changements de couleur (coloration syntaxique).
devine l’âge de l’utilisateur, en lui demandant s’il figure dans des listes de nombres. En fait les listes
de nombres ont en commun un certain chiffre binaire. . .

33 Que calcule la fonction suivante ?



1 def titi(n):
2 res=1
3 for i in range(2,n+1):
4 res *= i
5 return res
6
7 print(titi(5))
 

la factorielle bien sûr. . .
n! “ n ˆ pn ´ 1q ˆ pn ´ 2q ˆ ¨ ¨ ¨ ˆ 2 ˆ 1

34 ‹‹ Trouvez le seul nombre entier avec exactement 3 chiffres décimaux, et égal à la somme des
factorielles de ses chiffres décimaux.
Par exemple 659 ne convient pas, car 6! ` 5! ` 9! “ 720 ` 120 ` 362880 “ 363720 ‰ 659.
Réponse au TD suivant !

35 ‹ ‹ ‹ Lors de la bataille d’Hasting, les soldats de Harold formaient 13 carrés semblables. Quand
Harold se joignit à la bataille, tous formèrent un unique carré.
Combien l’armée comportait-elle d’hommes ?
Il s’agit de trouver a, b P N˚ tels que 13a2 ` 1 “ b2 .

1 from math import sqrt
2 def carre(n):
3 r=sqrt(n)
4 return r.is_integer()
5
6 trouve=False
7 a=0
8 while not trouve:
9 a+=1
10 if carre(13*a**2+1):
11 trouve=True
12
13 print(13*a**2)
 

1 421200
Donc 421 200 hommes, sans compter Harold.

12
On pouvait trouver la réponse à la main : voir http://mathafou.free.fr/pba/pb006b.html

36 ‹ ‹ ‹ Trouvez le plus petit n P N˚ tel que la suite de Syracuse (chercher sur internet) issue de n soit
de temps de vol ě 100.

1 def T(n):
2 if n%2==0:
3 return n//2
4 return 3*n+1
5
6 def affichesuite(n):
7 print(n,end=" ")
8 m=n
9 while m!=1:
10 m=T(m)
11 print(m,end=" ")
12
13 def longueur(n):
14 m=n
15 longueur=1
16 while m!=1:
17 m=T(m)
18 longueur+=1
19 return longueur
20
21 trouve=False
22 n=0
23 while not trouve:
24 n+=1
25 l=longueur(n)
26 if l>=500:
27 trouve=True
28 print("longueur de la suite de Syracuse issue de ",n," : ",l)
29 affichesuite(n)
 

1 longueur de la suite de Syracuse issue de 626331 : 509
2 626331 1878994 939497 2818492 1409246 704623 2113870 1056935 3170806 1585403
4756210 2378105 7134316 3567158 1783579 5350738 2675369 8026108 4013054
2006527 6019582 3009791 9029374 4514687 13544062 6772031 20316094
10158047 30474142 15237071 45711214 22855607 68566822 34283411 102850234
51425117 154275352 77137676 38568838 19284419 57853258 28926629 86779888
43389944 21694972 10847486 5423743 16271230 8135615 24406846 12203423
36610270 18305135 54915406 27457703 82373110 41186555 123559666 61779833
185339500 92669750 46334875 139004626 69502313 208506940 104253470
52126735 156380206 78190103 234570310 117285155 351855466 175927733
527783200 263891600 131945800 65972900 32986450 16493225 49479676
24739838 12369919 37109758 18554879 55664638 27832319 83496958 41748479
125245438 62622719 187868158 93934079 281802238 140901119 422703358
211351679 634055038 317027519 951082558 475541279 1426623838 713311919
2139935758 1069967879 3209903638 1604951819 4814855458 2407427729
7222283188 3611141594 1805570797 5416712392 2708356196 1354178098

13
677089049 2031267148 1015633574 507816787 1523450362 761725181 2285175544
1142587772 571293886 285646943 856940830 428470415 1285411246 642705623
1928116870 964058435 2892175306 1446087653 4338262960 2169131480
1084565740 542282870 271141435 813424306 406712153 1220136460 610068230
305034115 915102346 457551173 1372653520 686326760 343163380 171581690
85790845 257372536 128686268 64343134 32171567 96514702 48257351
144772054 72386027 217158082 108579041 325737124 162868562 81434281
244302844 122151422 61075711 183227134 91613567 274840702 137420351
412261054 206130527 618391582 309195791 927587374 463793687 1391381062
695690531 2087071594 1043535797 3130607392 1565303696 782651848 391325924
195662962 97831481 293494444 146747222 73373611 220120834 110060417
330181252 165090626 82545313 247635940 123817970 61908985 185726956
92863478 46431739 139295218 69647609 208942828 104471414 52235707
156707122 78353561 235060684 117530342 58765171 176295514 88147757
264443272 132221636 66110818 33055409 99166228 49583114 24791557 74374672
37187336 18593668 9296834 4648417 13945252 6972626 3486313 10458940
5229470 2614735 7844206 3922103 11766310 5883155 17649466 8824733
26474200 13237100 6618550 3309275 9927826 4963913 14891740 7445870
3722935 11168806 5584403 16753210 8376605 25129816 12564908 6282454
3141227 9423682 4711841 14135524 7067762 3533881 10601644 5300822 2650411
7951234 3975617 11926852 5963426 2981713 8945140 4472570 2236285 6708856
3354428 1677214 838607 2515822 1257911 3773734 1886867 5660602 2830301
8490904 4245452 2122726 1061363 3184090 1592045 4776136 2388068 1194034
597017 1791052 895526 447763 1343290 671645 2014936 1007468 503734 251867
755602 377801 1133404 566702 283351 850054 425027 1275082 637541 1912624
956312 478156 239078 119539 358618 179309 537928 268964 134482 67241
201724 100862 50431 151294 75647 226942 113471 340414 170207 510622
255311 765934 382967 1148902 574451 1723354 861677 2585032 1292516 646258
323129 969388 484694 242347 727042 363521 1090564 545282 272641 817924
408962 204481 613444 306722 153361 460084 230042 115021 345064 172532
86266 43133 129400 64700 32350 16175 48526 24263 72790 36395 109186 54593
163780 81890 40945 122836 61418 30709 92128 46064 23032 11516 5758 2879
8638 4319 12958 6479 19438 9719 29158 14579 43738 21869 65608 32804 16402
8201 24604 12302 6151 18454 9227 27682 13841 41524 20762 10381 31144
15572 7786 3893 11680 5840 2920 1460 730 365 1096 548 274 137 412 206 103
310 155 466 233 700 350 175 526 263 790 395 1186 593 1780 890 445 1336
668 334 167 502 251 754 377 1132 566 283 850 425 1276 638 319 958 479
1438 719 2158 1079 3238 1619 4858 2429 7288 3644 1822 911 2734 1367 4102
2051 6154 3077 9232 4616 2308 1154 577 1732 866 433 1300 650 325 976 488
244 122 61 184 92 46 23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1

14
4 erreurs classiques à éviter
— Ne pas confondre le test d’égalité == et l’affectation =
— Ne pas confondre la variable titi et la chaine de caractères "titi"
— Ne pas confondre le point . précédant les décimales d’un flottant, et la virgule , pour séparer les
termes d’une liste ou d’un tuple
— Les booléens True et False prennent des majuscules en Python (mais pas en Caml)

15

Vous aimerez peut-être aussi