1BCPST3 Informatique - TP1: prise en main (durée max: 3h) Lycée Thiers
Pour installerSpyderetAnacondachez soi : aller sur le sitehttps ://www.spyder-ide.org/.
PRÉSENTATION ET FORMULAIRE DE BASE
•Présentation de l’interface
Quand on démarreSpyderon constate que l’interface est constituée en particulier de deux parties qui vont nous intéresser : une partie "interpréteur" (oushellouConsole) qui lit du code écrit enPythonet le traduit en langage machine pour que celle-ci puisse l’éxecuter et vous donner le résultat et une partie "code source" (ouÉditeur) ou l’on peut créer un fichier (extension.py) comportant des programmes écrits enPython.
Pythonpossède une quantité astronomique de fonctions mathématiques prédéfinies, à l’aide de son modulemath: fonctions trigonométriques, valeur absolue (ou module), racine carrée, partie entière, logarithme, exponentielle, etc. . .
Pour s’y retrouver parmi toutes ces fonctions, on n’hésite pas à utiliser l’aide ou à aller sur Internet à l’adresse https ://docs.python.org/3/library/index.html
Le modulemathcontient également des variables usuelles prédéfinies (commepioue). Pour écrire un nombre complexe, on utilise la lettrejqui permet de préciser la partie imaginaire : 2+3is’écrira ainsi2+3j.
Attention : au démarrage les modules ne sont pas automatiquement chargés dans l’environnement de travail. Il faut donc utiliser la commandeimportsoit pour importer un module où l’une de ses fonctions. Plusieurs possibilités d’importation existent :
?fromnom de moduleimportnom de fonction. Ici vous importez une fonction particulière du module indiqué.
?importnom de module. Ensuite à chaque utilisation d’une fonction du module importé, il faudra la faire précéder du nom de ce module en écrivantnom de module.nom de fonction.
?importnom de moduleasalias. Fonctionne comme l’importation précédente mais présente l’avantage de n’avoir pas à retaper l’intégralité du nom du module (on écriraalias.nom de fonction.
Quelques modules utilisés habituellement :math,numpy,random,matplotlib.pyplot,scipy,PIL.
Si un module n’existe pas :pip installnom.
•Les types
Il existe de nombreux types de variables enPython. Voici les principaux.
Nom Nom anglais Nom Python Exemples
booléens booleans bool True,False
entiers integers int -3
réels real numbers float 3.5
chaînes de caractères strings str ’toto’
listes list list [2,2.3,’toto’]
•Affectation et comparaison
Un des points essentiel en informatique est de pouvoir affecter une valeur à une variable et de comparer ces variables.
Tâche à effectuer Syntaxe Effet Exemples
affectation X= on assigne à X la valeur . . . T=’toto’
test d’égalité X==Y vérifie si les valeurs de X et Y sont égales True==Not (False) et retourne le booléen correspondant
test de comparaison vérifie si
X<Y X inférieur strict à Y X>Y X supérieur strict à Y X<=Y X inférieur à Y X>=Y X supérieur à Y
X!=Y X différent de Y
et retourne le booléen correspondant
–simplementconnexe.free.fr– –1–
1BCPST3 Informatique - TP1: prise en main (durée max: 3h) Lycée Thiers
•Opérations sur les booléens
Opération Syntaxe Exemples
non not(P) not(True==False) (True) et P and Q (1<3) and (2==4-2) (True) ou P or Q (1<3) or (2==4-2) (True)
•Opérations sur les entiers ou réels
Voici les opérations classiques sur les nombres (typesfloatouint).
On verra que l’addition est aussi utilisable pour les chaînes de caractères (typestr).
Opération Syntaxe Exemples
addition a+b 3+5 (8)
soustraction a-b 3.0-5 (-2.0)
multiplication a*b 3*5 (15)
division entière a//b 5//3 (1)
division a/b 5/3 (1.666)
puissance a**b 5**3 (125)
modulo a%b 5%3 (2)
•Instructions élémentaires
On remarquera que, par défaut, l’instructioninput saisi une chaîne de caractère (typestr). Il conviendra donc de convertir éventuellement le résultat obtenu avec l’instructionfloat(input())oueval(input()).
Syntaxe Effet Exemples
print affiche ce qui est en argument print(’toto’) input laisse l’utilisateur saisir au clavier la valeur indiquée a=input(’entrer un mot’)
type détermine le type de l’argument considéré type(2.3)
str convertit l’argument en chaîne de caractère v=str(1)
int convertit l’argument en entier si possible v=int(’12’) float convertit l’argument en réel si possible v=float(input())
len donne la longueur d’une chaîne de caractère v=len(’cartable’)
–simplementconnexe.free.fr– –2–
1BCPST3 Informatique - TP1: prise en main (durée max: 3h) Lycée Thiers
EXERCICES
La flèche directionnelle vers le haut permet de récupérer la dernière ligne tapée pour la modifier ; une ligne de commande n’est pas exécutée tant que vous n’avez pas tapé sur la touche "Entrée".
L’instruction,end=’’à la fin d’unprintempêche le retour à la ligne tandis que l’instruction\nforce ce passage à la ligne.
Exercice 1 : intro aux caractères et aux booléens 1. Placez-vous dans leShell.
(a) Saisissez :Bonjour. Constatez une erreur.
(b) Saisissez :print(’Bonjour’). Constatez que l’interpréteur affiche bien "Bonjour". Supprimer les guillemets, consta- tez.
(c) Affichez dans l’interpréteur’On débute en Python’.
(d) Saisissezmessage=’Bonjour’puis saisissezmessage. Constatez : ceci est une affectation.
(e) Dans la barre des tâches, cliquez surPythonet redémarrez leShell. Saisissezmessage. Constatez que l’on a mainte- nant une erreur.
(f) Affectez a la variablesourisla chaîne de caractères "Minus et Cortex".
(g) Saisissezlen(souris). Quelle est la valeur de retour ?
(h) Affectez respectivement à la variableoiseau"titi" et à la variablechat"et gros minet"". Quel est la valeur de retour deoiseau+chat? Ceci est à retenir.
(i) Saisissez’i’ in ’titi’. Quelle est la valeur de retour ? (j) Essayez’Minus’ in souris.
(k) Essayezsouris[0].
(l) Essayezsouris[-1].
(m) Á l’aide de crochets, trouver la 6-ième lettre de la chaîne contenue danssouris.
(n) Saisissezchat=oiseau+chat. Quel est la valeur dechat? 2. Placez-vous dans l’Éditeurpour écrire votre premier programme.
(a) Écriremessage=’Bonjour’dans votre programme.
(b) Enregistrez votre fichier dans le bon dossier sous le nomTP1-exo1-2.py.
(c) Exécutez le script.
(d) Dans leShell, saisissezmessage. Constatez.
(e) Modifier votre script en rajoutant l’instructionprint(message). Enregistrez, exécutez, constatez.
3. Retournez dans leShell
(a) Affectez a la variablepropositionla valeurTrue.
(b) Essayez d’affecter à la variableFalsela valeurTrue.
(c) Dans l’interpréteur, saisissez(2+2)==4. Quelle est la valeur de retour ? (d) Faire afficher le type deTrueet deFalse.
4. Dans leShell:
(a) Saisissezz=input(’Saisir un nombre’)puis saisir 36.
(b) Quel est le type dez? (c) Saisirt=z+2. Constatez.
(d) Saisirt=z+’2’puis faire affichert. Constatez.
(e) Convertirzen unfloat(on nommera encorezle résultat obtenu !). Saisirt=z+2et faire affichert. Constatez.
(f) Convertirzen unint. Saisirt=z+2et faire affichert. Constatez.
5. Dans leShell, Observez ce que donnent les 3 cas suivants (lecture en colonnes) et identifier le type debà chaque étape :
b=’154’ | b=’154’ | b=’154’
b+12 | b+’12’ | b=int(b)
| eval(_) | b+12
Remarques sur les chaînes de caractères :
La fonctioninputrenvoie donc toujours une chaîne de caractères.
Il est possible d’accéder aui-ième caractère d’une chaîneaen utilisant l’instructiona[i].
On peut aussi réaliser des opérations simples sur les chaînes de caractères. La concaténation s’obtient avec le symbole mathéma- tique+. Enfin, il est possible de convertir une chaîne qui contient un nombre en entier ou réel.
–simplementconnexe.free.fr– –3–
1BCPST3 Informatique - TP1: prise en main (durée max: 3h) Lycée Thiers
Exercice 2 : intro aux nombres 1. Calculer 53×98 puis147
32 puis 342.4. Convertir ce dernier résultat en typeint. Constatez.
2. Calculer 0.1+0.2. Constatez.
3. Taper9%4et15%4et comprendre ce que représente ces résultats.
4. Créer le fichierTP1-exo2.pycontenant le programme suivant, l’exécuter et constater le résultat : m=int(input("saisissez un entier :"))
n=int(input("saisissez un entier : ")) n=n+m
print("le résultat est: ", n)
5. Sur le même modèle, écrire un programme qui demande à l’utilisateur de saisir deux réels (des flottants !)aetbet qui affiche la valeur du milieu de l’intervalle[a,b].
Exercice 3 : intro aux variables
1. (a) Réaliser la succession de calculs suivants dans leShell:
Affecter la valeur 2 à la variableaet la valeur−5 à la variableb, calculera−bpuisb/a.
(b) Observer ce qui se passe dans leShellsi l’on écritx=A+3après l’exécution de ces instructions. Même chose si l’on écritx=a+3, puisx.
2. Créer un programme qui affiche "Entrez la valeur de x :", attend une valeur saisie au clavier et affecte le nombre saisi àx, affecte la valeur 5 ày, puis remplaceypary+x, et enfin affiche la valeur dexet dey.
3. Créer un programme qui demande de saisir les valeurs de deux variables, échange ces 2 valeurs, puis les affiche à nouveau.
Une astuce spécifique àPythonpour permuter deux variables :x,y=y,x Exercice 4 :
1. Ecrivez un programme qui demande à l’utilisateur de saisir son prenom puis qui affiche :
"Bonjour Prénom !" oùPrénomcorrespond a la chaîne de caractère entrée.
2. Complétez le programme précédent pour qu’il demande à l’utilisateur son âge puis affiche :
"Vous avez C ans. Dans deux ans, vous aurez C’ ans." oùCetC’sont les nombres adaptés.
3. Sachant que dans cinq ans le perroquet de l’utilisateur aura le tiers de l’âge de l’utilisateur (arrondi à l’inférieur), com- pléter votre programme pour qu’il affiche :
"Votre perroquet a donc P ans" oùPest bien sûr le bon âge du perroquet.
Exercice 5 : avec les modules importés
Les commandes suivantes sont à faire dans leShell:
1. (a) Taperpi. Importez le modulemath. Saisissezmath.pi. Comprendre. Redémarer leShell.
(b) Importez le modulemathavec l’aliasmt. Saisissezmath.pi. Saisissezmt.pi. Comprendre. Redémarer leShell.
(c) Importez juste la constantepidu modulemath. Saisissezmath.pi, puispi. Saisissezmath.e, puise. Comprendre.
Faire les corrections nécessaires pour que ces deux constantes soient utilisables. Redémarer leShell.
2. En utilisant les fonctions du modulemath, calculer les valeurs suivantes (avec en particulier les fonctionsfloor,sqrt du modulemath, la fonctionabsétant directement accessible et le nombre complexe 3−is’écrivant3-1j) :
sin2
5π
6
;
e3−5 2−√
2
; |3−i| ; tanπ 2
3. Pour les questions suivantes on importera le modulenumpyavec l’aliasnpaprès avoir encore une fois réinitialisé leShell.
(a) Définir le tableauA=np.array([(-pi,pi/4),(2*pi/3,7*pi/6)]), le faire afficher et calculernp.cos(A).
Essayez également la fonctionnp.sqrtsur la matrice précédente. Comprendre.
(b) Tester la fonctionnp.sizesurApuis la commandeA.shape. Comprendre.
(c) Créer les tableaux associés aux matricesB=
4 1
0 −1
etC=
2 −2
−1 0
.
TaperB+C. Comprendre. TaperB*C. Comprendre. Tapernp.dot(B,C). Étrange . . . comprendre !
–simplementconnexe.free.fr– –4–