Initiation `a l`informatique I. Initiation `a Python Université de

publicité
Initiation à l’informatique
I. Initiation à Python
Université de Provence
Licence Sciences et Technologies
Année 2007-2008
Exercice I.1 (Python : programmes et interpréteur)
1. Ouvrez un terminal et lancez la commande python dans cette fenêtre. Le logiciel Python
lance un interpréteur qui se comporte comme une super-calculatrice. Exécutez les commandes
suivantes et commentez-les :
>>> 3+2
5
>>> s=12
>>> print s*s
144
>>> pi
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name ’pi’ is not defined
>>> from math import *
>>> pi
3.1415926535897931
>>> cos (pi/3)
0.50000000000000011
Laissez cette fenêtre ouverte : elle servira à tester des commandes avant des les inclure dans
un programme.
2. Dans une autre terminal, lancez la commande xemacs tp6prog1.py &. Ce terminal servira
a exécuter les programmes. Remarquez que Emacs a reconnu un programme Python, par son
extension .py et qu’il propose deux menus supplémentaires. Ecrivez le programme suivant
et sauvez le.
n= input(’Entrez un nombre
while n!=0:
print n%2
n=n/2
: ’)
Exécutez-le grâce à la commande python tp6prog1.py. Observez et commentez.
Exercice I.2 (Coder un nombre en base 2)
1. Exécutez les commandes suivantes dans l’interpréteur Python. Commentez.
>>> s=’’
>>> s
’’
>>> s=s+’1’
>>> s
’1’
>>> s=s+’0’
>>> s
’10’
>>> s=s+0
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: cannot concatenate ’str’ and ’int’ objects
>>> s=s+str(2)
>>> s
’102’
1
La variable s contient des chaı̂nes de caractères. On peut concaténer des chaı̂nes avec
l’opérateur +. La fonction prédéfinie str permet de transformer un entier en chaı̂ne de
caractères.
2. Modifiez le programme précédent pour qu’il affiche le code en base 2 de l’entier saisi par
l’utilisateur. Sauvez ce nouveau programme sous le nom tp6code2.py
3. Faites en sorte que le programme fonctionne également pour n = 0.
4. Ecrivez la partie codage dans une fonction dont l’entête sera def code2(n) et qui renverra
une chaı̂ne de caractères. Le programme aura donc la forme suivante :
def code2(n)
...
n= input(’Entrez un nombre
print code2(n)
: ’)
Exercice I.3 (Coder un nombre en base b)
1. Que faut-il modifier dans le programme précédent pour qu’il code un nombre en base 8 ?
2. Modifiez le programme précédent pour qu’il code un nombre dans une base b comprise entre
0 et 10. Le programme aura la forme suivante :
def codeb(n,b)
...
n= input(’Entrez un nombre : ’)
b= input(’Entrez une base : ’)
print codeb(n,b)
Exercice I.4 (Coder un nombre en base 16)
1. Dans l’interpréteur, exécutez les commandes suivantes et commentez-les.
>>> ord(’A’)
65
>>> chr(65)
’A’
>>> chr(12-10+65)
’C’
La fonction prédéfinie ord calcule le code ASCII d’un caractère et la fonction chr procède
au calcul inverse.
2. Ecrivez une fonction chiffre16(n) qui prend en entrée un nombre compris entre 0 et 15 et
retourne le chiffre correspondant en base 16.
3. Ecrivez une fonction code16(n) qui code un nombre en base 16.
4. Ecrivez une fonction code1116(n,b) qui code un nombre n dans une base b comprise entre
11 et 16.
5. Ecrivez une fonction qui code un nombre n dans une base b comprise entre 2 et 16.
2
Téléchargement