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