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 fonction du module math permettant de calculer la racine carrée d’un nombre ? sqrt
Exercice n°4 - Qu’est-ce qu’une “ instructions composé ”, où en trouve-t-on dans les programmes ?
Plusieurs instruction sur plusieurs lignes, dans un bloc indenté (le : en fin de ligne introduisant cette indentation). Trouvé dans les instructions de boucles while/for, les tests if, les définitions de fonctions...
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"
>>> vals = [ "8", "9", 2, 0, 2,
"0", 3 ]
>>> niveaux = { 0:"na", -1:7.8, 4:11.7, 2:0.3, -3:-7.12 }
>>> A = ( -4, 11.3)
>>> B = ( 9, 7.3)
>>> rectangle = (A,B)
>>> s[:4] * 2 'Joe Joe '
>>> niveaux[-1]
7.8
>>> vals[4]
2
>>> rectangle[1]
(9, 7.3)
>>> rectangle[0][1]
11.3
>>> 7.8 in niveaux False
>>> max(niveaux) 4
>>> niveaux[2]
0.3
>>> niveaux[-1]
7.8
>>> type(s)
<class 'str'>
>>> type(s[2:5])
<class 'str'>
>>> type(s.lower())
<class 'str'>
>>> type(9/8)
<class 'float'>
>>> type(vals[1])
<class 'str'>
>>> type(vals[1:3])
<class 'list'>
>>> type(vals.index("0"))
<class 'int'>
>>> type(niveaux)
<class 'dict'>
>>> type(34 == 12)
<class 'bool'>
>>>
Exercice n°6 - Écrire en Python la fonction mathématique f: f(a,d) = d sin(3ad) Ne pas oublier les imports nécessaires.
from math import sin def f(a,d) :
"""Calcul de d.sin(3ad)"""
return d * sin(3*a*d)
Exercice n°7 - Qu’affichent les instructions ci-dessus ?
>>> for i in range(1,11,3) : ... print(i)
...
1 4 7 10
Exercice n°8 - Les instructions ci-dessus provoquent une erreur, pourquoi ? Comment la corriger ? nom = input("Quel est votre nom:")
age = int(input("Quel est votre age (ans):"))
print ("Bonjour " + nom + ", agé de " + age + " ans")
age
est un entier, on ne peut le concaténer avec une chaîne, il faut le convertir (transtyper) en type
str.
Exercice n°9 - Les instructions ci-dessus provoquent systématiquement une erreur de syntaxe, pourquoi ? chrome = float(input("Densité du chrome:"))
or = float(input("Densité de l'or:")) if chrome > or :
print("Le chrome est plus lourd que l'or.") or
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 la liste des noms des cases d’un jeu de bataille navale (“touche/coulé”) de 12x12, c’est à dire les combinaisons entre une lettre de A à L et un nombre de 1 à 12. L’affichage se fera simplement par des lignes comme ci-dessous::
>>> for l in 'ABCDEFGHIJKL':
... for n in range(1,13):
... print(l+str(n))
A1 A2 ...
L11 L12
Exercice n°11 - Soit une variable globale couleur_feu, contenant une chaîne qui indique la couleur d’un feu tricolore.
Écrire une fonction passage_au_vert(), sans paramètre et sans valeur de retour, qui affiche la couleur actuelle du feu, indique le changement d’état, puis stocke la chaine "VERT" dans la variable sus-citée pour mémoriser cet état.
def passage_au_vert():
global couleur_feu
print ("Feu au:",couleur_feu,"passage au VERT.") couleur_feu = "VERT"
Correction DS Informatique Scientifique S'2- page 1/2
Exercice n°12 - Soit une liste :... Écrire une boucle qui remplace, directement dans la liste prenoms, chaque prénom par sa version avec une majuscule au début (noter la méthode title() des chaînes). Après l’exécution de la boucle, la liste prenoms devrait donc contenir :
>>> prenoms = [ "jean", "yacine", "andrew",
"jerome", "li" ]
>>> for i in range(len(prenoms)):
... prenoms[i] = prenoms[i].title()
...
>>> prenoms
['Jean', 'Yacine', 'Andrew', 'Jerome', 'Li']
Exercice n°13 - Soit un dictionnaire qui contient une correspondance entre certains numéros de départements et le nom correspondant, Écrire une boucle permettant d’afficher les noms des départements triés par ordre alphabétique.
>>> depart = { 91:"Essonne", 75:"Paris", 18:"Cher", 46:"Lot", 89:"Yonne" }
>>> for n in sorted(depart.values()):
... print(n) ...
Cher Essonne Lot Paris Yonne
Exercice n°14 -Écrire une fonction droite() prenant quatre paramètres x1, y1, x2 et y2, et retournant un tuple contenant deux valeurs : la pente et l’ordonnée à l’origine de la droite passant par les points (x1,y1) et (x2,y2). La fonction retournera un tuple vide si les abscisses sont confondues.
from math import sqrt def droite(x1,y1,x2,y2):
if x1==x2:
return () a = (y2-y1)/(x2-x1) b = y1 -a*x1
return (a,b)
Exercice n°15 - Écrire les instructions Python permettant de lire un fichier texte "index.html", utilisant des caractères encodés en iso-8859-1, et d’en afficher uniquement les lignes qui contiennent le caractère "@" afin de
rechercher les adresses email.
f = open("index.html","r",encoding="iso-8859-1") for ligne in f :
if "@" in ligne : print (ligne) f.close()
Exercice n°16 -Les instructions ci-dessus entraînent une boucle sans fin, pourquoi ? i = 1
while i>=1 or i<=100 : print(i,i**2) i = i+1
Le test logique ou est toujours vrai car il y a toujours une des deux conditions qui est vérifiée.
Exercice n°17 - Dans l'appel de la fonction standard open() qui permet d'ouvrir un fichier, à quoi sert le paramètre mode ?
Permet d'indiquer quel genre d'opérations on veut effectuer sur le fichier (lecture, écriture, ajout...).
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 affiche par print() un objet de la classe Poly2 ?
__str__
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.KeyError: 8
Un dictionnaire qui ne contient pas une clé, a-priori attendue, de valeur 8.
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__" :