TP1 : premiers pas avec Python 1 - Types, variables, tests 1.1.1 - L'interpréteur Python Si vous installez Python sur votre ordinateur personnel, vérifiez que vous avez bien une version supérieure à 3.2. Si vous installez Python pour Windows ou MacOS, téléchargez Python directement depuis le site principal du langage :https://www.python.org/download Si vous installez Python pour Linux, installez Python avec les gestionnaires de paquets de votre distribution. Dans ce cas, vérifiez que vous installez bien le paquet Python et le paquet Idle. (Pour Ubuntu : python3 et idle3.) 1.1.2 - Les premières commandes python - les opérateurs Nous allons maintenant dialoguer avec cet interpréteur Python : tapez les instructions de la colonne de gauche et écrivez les résultats obtenus (les réponses de l'interpréteur), dans la colonne de droite, en commentant éventuellement (essayez de prévoir la réponse et, si elle est différente, de comprendre pourquoi la réponse qui vous paraît logique n'a pas été celle de l'ordinateur). Tableau 1 : premières commandes python instruction à taper 20+1 résultat obtenu + commentaire ou explication 20/3 20//3 20%3 5.45*10 2**4 (3+2)*5 3+2*5 "bonjour" (avec des guillemets) 'bonjour' (avec des apostrophes et non pas des guillemets) "il fait " + "beau" "il fait " + "beau" + "et chaud " "bonjour "*5 Astuce : pour éviter d'avoir à retaper toute une ligne, utilisez la flèche “haut” du clavier pour vous positionner sur cette ligne, puis tapez “Entrée” : la ligne est recopiée après l'invite de commande et vous pouvez la modifier avant de taper à nouveau “Entrée”. + , * , / , // , % , ** , sont des opérateurs python. Ils permettent de réaliser des opérations sur des données. 20 , 3 , 5.45 , "bonjour" sont des données. Chaque donnée possède un certain type ; ici il s'agit : du type entier ou int pour les données 20 et 3 du type flottant ou float, pour la donnée 5.45 du type chaîne de caractères ou string pour la donnée "bonjour" (il existe d'autres types de données que nous verrons par la suite). Certaines instructions ne sont pas acceptées par l'interpréteur python et provoquent l'affichage d'un message d'erreur. Tapez les instructions suivantes, observez les erreurs obtenues et analysez-les : Tableau 2 : premiers messages d'erreur instruction à taper 20/0 erreur observée + explication 20@3 "bonjour"/3 "bonjour" + 5 (3+2))*5 (3+2*5 Pour connaître le type d'une donnée, on peut utiliser le mot type : tapez ce qui suit : Tableau 3 : les types de données instruction à taper type(3) type(1.5) type(3.0) type("bonjour") type("3") type(3+1.5) résultat obtenu + commentaire ou explication Exercice 1 : opérateurs et types de données Sur quels types de données peut-on utiliser les opérateurs + , * , / , // , % , ** ? Quel est le type du résultat ? Répondre en complétant ci-dessous. Vous pouvez faire des tests en tapant d'autres instructions dans l'interpréteur python. (exemple : 3+7.1 est accepté par l'interpréteur python, donc l'opérateur + s'applique à un entier et à un flottant, et le résultat est de type flottant). opérateur + types de données utilisables type du résultat …. Pour les chaînes de caractères, l'opérateur + s'appelle la concaténation (il fusionne bout à bout deux chaînes de caractères) 1.1.3 - Le transtypage On peut parfois transformer une donnée d'un certain type, en une donnée d'un autre type. Cela s'appelle le transtypage (ou cast en anglais). Tableau 4 : transtypage donnée de départ de quel type est la instruction à taper type du résultat obtenu et/ou commentaire donnée de départ ? 3.0 int(3.0) 3.5 int(3.5) 3 float(3) 4 str(4) "3" int("3") "3.5" float("3.5") "3.5" int("3.5") "bonjour" int("bonjour") Exercice 2 : corriger les instructions Comment corriger les instructions suivantes pour qu'elles ne provoquent plus d'erreur ? a) but recherché : on veut obtenir la chaîne de caractères "vous êtes 2 dans ce binôme TP" instruction : "vous êtes" + 2 + "dans ce binôme TP" instruction corrigée : ... b) but recherché : on veut afficher "blablablablablablablablablabla" c'est à dire"bla" 10 fois de suite. instruction : "bla"*10.0instruction corrigée : ... 1.2 - Les variables et l'affectation 1.2.1 - L'affectation Il peut être pratique de ranger les données dans des contenants, aussi appelés variables, afin de les conserver dans la mémoire de l'ordinateur pour les utiliser plus tard. Le rangement d'une donnée (un contenu) dans une variable (un contenant) s'appelle l'affectation. L'affectation se fait grâce à l'opérateur = qui s'appelle l'opérateur d'affectation. = est l'opérateur d'affectation L'affectation se fait en deux temps : (1)évaluation (c'est à dire calcul) de la partie à droite de l'opérateur d'affectation (selon des règles de priorité de calcul correspondant au type des données concernées). Le résultat de cette évaluation est la donnée (le contenu) qui va être rangée dans la variable. (2)rangement du résultat de cette évaluation dans la partie à gauche de l'opérateur d'affectation. Cette partie à gauche est la variable (le contenant). Attention : ne pas confondre l'opérateur d'affectation = avec le symbole d'égalité mathématique. L'affectation n'est ni une équation mathéma tique, ni une égalité mathématique ! Application : taper les instructions suivantes dans l'ordre indiqué, et compléter le tableau. Tableau 5: opérateur d'affectation = Quelle est la donnée (ou est le résultat de l'évaluation de la instruction à taper quelle est la variable ? partie droite) ? De quel type est cette donnée (ou ce résultat) ? age = 20 age = 30 prenom = "Perceval" taille_m = 1.75 taille_cm = 100*taille_m age = age + 3 phrase1 ="bonjour "+ prenom phrase1 = phrase1 + " !" phrase2 = prenom +" a " +str(age)+" ans." Pour afficher le contenu d'une variable dans l'interpréteur python, il suffit de taper le nom de cette variable. Taper les instructions suivantes et compléter : instruction à taper age prenom prenom = "Lancelot" prenom age = 40 age age = 22 age age = age + 1 age phrase1 phrase2 profession profession="étudiant(e)" profession quelle valeur contient la variable ? (+ commentaire) Remarque : le langage Python permet de faire plusieurs affectations à la fois, séparées par des virgules sur une seule ligne, mais cette utilisation est fortement déconseillée dans le cadre de ces TP. Exemple d'une telle affectation multiple : (à ne pas utiliser dans ces TP !) >>>nom,prenom,age,etudiant="Student","Joe",20,True 1.2.2- Les noms de variables Un nom de variable doit (conventions TPs Python, à respecter !) : •débuter par une lettre minuscule •contenir uniquement des lettres sans accents, des chiffres et le tiret de soulignement _ (appelé tiret “underscore” ou encore “tiret du 8”) • Être aussi explicite que possible (ne pas utiliser de noms trop courts et sans signification comme a, b, x, y, n, mais utiliser plutôt age, longueur, nombre, somme...) Le langage Python fait la distinction entre les majuscules et les minuscules. Les mots clés réservés du langage ne peuvent pas être utilisés comme nom de variables (car ils sont déjà “réservés” par le langage). Ce sont : and as assert break class continue except def False del finally elif for else from global lambda if None import nonlocal in not is or pass raise return True try while with yield Exercice 3 : échanger la valeur de 2 variables écrire (sur papier) un algorithme pour échanger les valeurs de 2 variables que vous nommerez var1 et var2.