Initiation `a l`informatique III. Introduction `a Python : Codage

publicité
Initiation à l’informatique
III. Introduction à Python : Codage
Université de Provence
Licence Sciences et Technologies & PEI
Année 2011-2012
Exercice III.1 (Un premier programme)
Dans un terminal, lancez la commande geany tp7prog1.py &
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 tp7prog1.py. Observez et commentez.
Exercice III.2 (Coder un nombre en base 2)
1. Exécutez les commandes suivantes dans l’interpréteur Python (lancé par la commande
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’
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 tp7prog2.py
3. Que se passe-t-il si l’utilisateur saisit la valeur 0 ? 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 :
# Definition de la fonction
def code2(n):
...[Placez ici les instructions necessaires]
# Appel de la fonction
n= input(’Entrez un nombre
print code2(n)
: ’)
1
Exercice III.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 :
# Definition de la fonction
def codeb(n,b):
...
# Appel de la fonction
n= input(’Entrez un nombre : ’)
b= input(’Entrez une base : ’)
print codeb(n,b)
Exercice III.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