#!/usr/bin/env python # coding: utf-8 # ### Validez la cellule suivante avant de commencer ce classeur # In[ ]: def interro(message,reponse): r=eval(input(message)) if r==reponse: print("Félicitation, la réponse est correcte") else: print("Erreur : la réponse était ",reponse) # ## Introduction # Si quelqu'un vous dit que « 4 est égal à 5 », vous lui répondez quoi ? « C'est faux ». Si maintenant la même personne vous dit que « 7 est égal à 7 », vous lui répondrez bien évidemment que « c'est vrai ». L'ordinateur peut aussi tester des affirmations en répondant par True ou False. # # En Python, ces deux affirmations (« 4 est égal à 5 » et « 7 est égal à 7 ») s'écriront « 4 == 5 » et « 7 == 7 » (notez bien le double signe égal). # # Validez et analysez les cellules suivantes : # In[ ]: print(4==5) # In[ ]: print(7==7) # In[ ]: a=4 b=3 print(a==b+1) # ### ATTENTION : # Il ne faut pas confondre ***l'opérateur d'égalité*** (==) et ***l'opérateur d'affectation** (=) utilisé pour attribuer une valeur aux variables. La confusion entre ces 2 opérateurs est une erreur classique qu'il est parfois très difficile à détecter ! # Il est aussi possible d'utiliser aussi l'opérateur « différent de » . En python on utilise le symbole **!=** # In[ ]: a=3 b=a+1 print(a!=b) # ### A vous de jouer # # Saurez-vous dire le résultat du test ci-dessous ? validez la cellule et répondez par **True** ou **False** # In[ ]: a=3 b=a+1 a=4 interro("Quel est le résultat du test a==b ?",a==b) print ("En effet, a=",a," et b=",b) # ## Instruction Si...Alors...Sinon # Nous allons maintenant étudier une structure fondamentale en programmation le « si …... alors.......sinon........». # # L'idée de base est la suivante : # # Si : # Instructions à réaliser # si la condition est vraie # Sinon : # Instructions à réaliser # si la condition est fausse # # Si « condition à tester» vaut True alors on exécute seulement le premier bloc d'instructions, sinon, on exécute seulement le second bloc d'instruction. # # Regardons un exemple : # In[ ]: age=eval(input("Quel âge as tu ?")) if age >= 13: print("Tu peux créer un compte Facebook !") else: print("Tu es encore trop jeune pour aller sur Facebook") # Comme vous pouvez le voir, la syntaxe Python est très proche du langage naturel. Il faut néanmoins être attentif à deux choses : # - Les blocs d'instructions sont toujours décalés de quelques espaces par rapport à la marge (en général 4 espaces). On appelle ce décalage l'*indentation*. L'indentation permet à Python de délimiter le début et la fin d'un bloc d'instructions. # - La ligne juste avant un bloc d'instruction ***doit se terminer par :***. La présence de ***:*** à la fin d'une ligne montre qu'un bloc d'instruction va commencer à la ligne suivante. # # Il est très courant pour les débutants Python d'oublier ces : ou l'indentation. Il faut être très attentif à cela. # # L'exemple suivant possède plusieurs erreurs. Corrigez les. Laissez-vous guider par les messages d'erreur que Python vous adresse. # In[ ]: age=eval(input("Quel âge as tu ?")) if age >= 18: print("Tu va pouvoir aller voter") else print("Tu es mineur, grandis encore un peu :)") # ## Combiner les tests avec des mots logiques # Il est possible de combiner deux conditions avec les mots clés ***et*** et ***ou***. On utilise les mots Python **and** et **or**. # # Exécutez et analysez les cellules suivantes : # In[ ]: a=3 b=2 a==3 and b>=3 # In[ ]: a==3 or b>=3 # ## A vous de jouer # # Validez et analysez la cellule suivante : # In[ ]: x = eval(input("Saisir la valeur de x : ")) print("L'inverse de",x,"est", 1/x) # Que se passe t-il si vous saisissez la valeur 0 pour **x** ? pourquoi ? # # Il n'est pas possible de laisser un programme se planter pour une erreur de calcul. Corrigez le programme ci-dessus afin qu'il affiche le message ***0 n'a pas d'inverse*** lorsque l'utilisateur saisit la valeur 0. # In[ ]: