Vous êtes sur la page 1sur 2

Exercice n°1 - Définition d’un algorithme

Notions: séquence d'instructions pour résoudre un problème, nombre fini d'instructions, temps fini d'exécution.
Exercice n°2 - Cochez la case Oui ou Non pour indiquer si l’expression est vraie :
Python est un langage :
orienté objet OUI,
interprété dynamique OUI,
procédural OUI,
machine NON,
typé OUI
Exercice n°3 - Quelle est la méthode permettant d’ajouter un élément à la fin d’une liste ?
append
Exercice n°4 - Quel élément syntaxique permet d’identifier un bloc d’instructions composées en Python ?
L'indentation du bloc (le : en fin de ligne introduisant cette indentation)
Exercice n°5 - Soit la définition des variables, Que valent les expressions suivantes... Quel est le type du résultat des
expressions suivantes :
>>> s = "Joe Student" >>> rect[0][1] >>> type(sequence[1])
>>> sequence = [ "3", "9", 6, 4 <class 'str'>
2, "0", 8 ] >>> 75 in dept >>> type(sequence[1:3])
>>> dept = { 75:"Paris", 91: True <class 'list'>
"Essonne" } >>> max(dept) >>> type(sequence.index("0"))
>>> pt1 = ( 1, 4) 91 <class 'int'>
>>> pt2 = (12, 15) >>> type(s) >>> type(sequence[-1])
>>> rect = (pt1,pt2) <class 'str'> <class 'int'>
>>> s * 2 >>> type(s[2:5]) >>> type(34 <= 12)
'Joe StudentJoe Student' <class 'str'> <class 'bool'>
>>> s[4:] >>> type(s.upper()) >>> type(dept)
'Student' <class 'str'> <class 'dict'>
>>> dept[75] >>> type(3/2) >>> type(dept[75])
'Paris' <class 'float'> <class 'str'>
Exercice n°6 - Écrire en Python la fonction f: f(x) = 3x² - 2x + 1
def f(x) :
"""Calcul de 3x² - 2x + 1"""
return 3 * x ** 2 - 2 * x + 1
Exercice n°7 - Qu’affichent les instructions ci-dessous ?
>>> for i in range(3,11,2) : 3
... print(i) 5
... 7
9
Exercice n°8 - Les instructions ci-dessous provoquent une erreur, pourquoi ? Comment la corriger ?
long = input("Longueur du rectangle:")
larg = input("Largeur du rectangle:")
print ("Surface du rectangle:", long*larg)
input renvoie une valeur de type str, il faut convertir (transtyper) en type float.
Exercice n°9 - Les instructions ci-dessous provoquent systématiquement une erreur de syntaxe, pourquoi ?
out = input("Nom fichier sortie:")
in = input("Nom fichier entrée:")
if out == in :
print("Impossible de travailler sur le même fichier.")
in est un mot réservé du langage, on ne peut pas l'utiliser comme variable.
Exercice n°10 - Écrire les instructions de boucles permettant d’afficher une table de multiplication des nombres de 1 à
9 entre eux. L’affichage se fera simplement par des lignes comme ci-dessous...:
for i in range(1,10) : 1 x 1 = 1
for j in range(1,10) : 1 x 2 = 2
print(i,'x',j,'=',i*j) ...
9 x 8 = 72
9 x 9 = 81
Exercice n°11 - Soit une variable globale compteur_appels, contenant un nombre entier et utilisée par ailleurs pour
compter combien de fois une fonction est appelée dans un programme.Écrire une fonction
statistiques_appels(), sans paramètre et sans valeur de retour, qui affiche la valeur courante de
compteur_appels, puis remet ensuite ce compteur à zéro.
def statistiques_appels():
global compteur_appels
print ("Nombre d'appels", compteur_appels)
compteur_appels = 0
Exercice n°12 - Soit une liste :... Écrire une boucle qui remplace, directement dans la liste vals, toutes les valeurs
négatives par leur carré.
>>> vals = [ 1, 5, -3, 8, 9, -4, -2, 7 ] ...
>>> for i,v in enumerate(vals) : >>> vals
... if v<0 : [1, 5, 9, 8, 9, 16, 4, 7]
... vals[i] = v**2

Correction DS Informatique Scientifique S'2- page 1/2


Exercice n°13 - Soit un dictionnaire qui contient une correspondance entre certains numéros de départements et le
nom correspondant, écrire une boucle parcourant les clés numéros de département par ordre croissant, et
affichant à chaque fois numéro et nom de département. Note : Il est interdit de coder "en dur" les numéros des
départements, il faut utiliser ceux présents dans le dictionnaire.
>>> depart = { 91:"Essonne", 75:"Paris", 18:"Cher", 46:"Lot", 89:"Yonne" }
>>> for n in sorted(depart.keys()) :
... print(n,"==>",depart[n])
...
18 ==> Cher
46 ==> Lot
75 ==> Paris
89 ==> Yonne
91 ==> Essonne
Exercice n°14 -Écrire une fonction racinespoly2() prenant trois paramètres a b et c, et retournant un tuple qui contient
les racines flottantes de l'équation du second degré ax²+bx+c=0. Le tuple retourné sera vide s’il n’y a pas de
racine, ou contiendra une ou deux valeurs flottantes.
from math import sqrt
def racinespoly2(a,b,c) :
delta = b**2 - 4*a*c
if delta < 0 :
return ()
elif delta == 0 :
x = -b/(2*a)
return (x,) # tuple d'une seule valeur
else :
x1 = (-b - sqrt(delta)) / (2*a)
x2 = (-b + sqrt(delta)) / (2*a)
return (x1,x2)
Exercice n°15 - Écrire les instructions Python permettant de lire un fichier texte "apache.log", utilisant des caractères
ascii, et d’en afficher uniquement les lignes qui contiennent le texte "cracker".
f = open("apache.log","r",encoding="ascii")
for ligne in f :
if "cracker" in ligne :
print (ligne)
f.close()
Exercice n°16 -Les instructions ci-dessous entraînent une boucle sans fin, pourquoi ?
i = 0
while i<100 :
print(i,i**2)
j = i+1
La variable i, utilisée dans le test de fin de la boucle, n'est pas modifiée dans celle-ci.
Exercice n°17 - Dans l'appel de la fonction standard open() qui permet d'ouvrir un fichier, à quoi sert le paramètre
encoding ?
Permet d'indiquer comment interpréter les caractères accentués.
Exercice n°18 - Dans les méthodes d’une classe, à quoi correspond le premier paramètre self ?
A l'objet (ou l'instance), qui est manipulée (à laquelle la méthode s'applique).
Exercice n°19 - Soit une classe Poly2, utilisée pour stocker les coefficients d’un polynôme du second degré et
fournissant les méthodes pour le manipuler. Quelle méthode de Poly2 est appelée lorsque l’on crée un nouvel
objet de la classe Poly2 ?
__init__
Exercice n°20 - Le message d’erreur suivant s’affiche: Quel genre d’erreur dois-je rechercher dans mon programme ?
Traceback (most recent call last):
File "<string>", line 1, in <fragment>
builtins.IndexError: list index out of range
Un calcul d'index dans une liste dont la valeur est invalide (trop petite / trop grande), et qui est utilisé pour accéder à des
éléments de la liste.
Exercice n°21 Quel est l’effet de l’instruction:... que l’on trouve souvent à la fin des modules ?Quel est son usage ?
if __name__ == "__main__" :
Permet de n'exécuter le bloc d'instructions du if que lorsque le module est le module "principal", c'est à dire le module dont on
a demandé l'exécution par Python.
Utilisé entre autres pour les auto-tests des modules outils.

Correction DS Informatique Scientifique S'2- page 2/2