IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

etudiante en L1 info besoin d'aide avec le booléen


Sujet :

Python

  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Etudiante en Licence Informatique
    Inscrit en
    Janvier 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante en Licence Informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 1
    Par défaut etudiante en L1 info besoin d'aide avec le booléen
    Bonjour,

    Je suis nouvelle sur le forum, je suis étudiante en L1 d'informatique et je galère un peu à comprendre le fonctionnement de l'expresion booléene, j'en suis aux bases mais vu que je rencontre quelques difficultés au moments de faire mes exercices, je voudrais savoir si il y a des tutos sur le site concernant l'expression booléene , et le booléen en général sur python? ainsi j'arriverai peut etre à bout de ce cours...
    merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Bonjour,

    Qu'appelles-tu expression booléenne en Python ?

    Si tu as un bout de code qui montre ton questionnement, ce sera plus facile.

  3. #3
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Voir déjà ici (le manuel raconte déjà plein de choses intéressantes ): http://docs.python.org/library/stdty...highlight=bool. C'est pour Python v2.7, mais il y a l'équivalent pour le Python v3.x.

    Même si on ne s'en sert pas souvent explicitement, Python a un type "bool". Les 2 valeurs permises sont True et False (ce ne sont pas des chaines de caractères!). On peut créer une variable de ce type de plusieurs façons:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    a = (5>7) # donne False. On peut aussi utiliser n'importe quel opérateur de comparaison
    a = True # donne True
    a = bool(5) # donne True comme n'importe quelle valeur à part 0
    a = bool(0) # donne False
    print type(a)
    <type 'bool'>
    print isinstance(a, bool)
    True
    Maintenant qu'on a des variables booléennes, on peut faire tous les calculs logiques qu'on veut avec les opérations de base: and, or et not:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    a = True
    b = False
    c = True
    d = (a and b) or c
    print d
    True
    On peut ainsi reconstituer les tableaux logiques habituels permettant de visualiser comment 2 éléments logiques se combinent avec and et or:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    for i in [False, True]:
        for j in [False, True]:
            print i and j,
        print
    False False
    False True
     
    for i in [False, True]:
        for j in [False, True]:
            print i or j,
        print
    False True
    True True
    Python n'a pas d'opérateur xor, mais on peut le refabriquer comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xor = lambda a, b: (not(a) and b) or (a and not(b))
    On pourrait aussi utiliser l'opérateur xor binaire '^' en utilisant le fait que True est codé comme un 1 binaire et False comme un 0 binaire. Mais je préfère rester dans les purs booléens.

    Avec xor, on peut fabriquer le même tableau:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    xor = lambda a, b: (not(a) and b) or (a and not(b))
    for i in [False, True]:
        for j in [False, True]:
            print xor(i, j),
        print
    False True
    True False
    Bon courage!

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 828
    Billets dans le blog
    1
    Par défaut
    Bonsoir

    Une expression booléenne est une expression qui est soit "vraie" soit "fausse".
    Par exemple si tu as une valeur qui vaut 5, alors l'expression "a > 5" est fausse car elle signifie "a supérieur à 5" or 5 est égal à 5, il ne lui est pas supérieur.

    Une expression peut s'appliquer sur plusieurs éléments connectés par un "ou" ou un "et".
    Si les éléments sont connectés par un "ou", alors il suffit d'un seul élément vrai pour que l'expression complète soit vraie. Inversement il faut que tous les éléments soient faux pour que l'expression soit fausse
    Exemple: jusqu'en 1953, les femmes et les personnes mineures (à 21 ans) ne pouvaient pas voter. Donc l'interdiction de voter se traduisait par "sexe = femme ou age < 21. Tu remarqueras la différence entre le langage commun "les femmes et les personnes mineures" qui se traduit en informatique par un "ou". Il s'agit généralement d'une erreur linguistique car la vrai formulation est "les femmes ou les personnes mineures".

    Si les éléments sont connectés par un "et", alors il faut que tous les éléments soient vrais pour que l'expression soit vraie. Et inversement un seul élément faux rend l'expression fausse
    Exemple: pour voter aujourd'hui il faut être majeur (18 ans) et ne pas avoir de casier judiciaire Donc le droit de voter aujourd'hui se traduit par "casier = vide et age >= 18"

    Généralement on attribue à "vrai" la valeur 1 et à "faux" la valeur 0. Et à "ou" le signe de l'addition et à "et" le signe de la multiplication. Ainsi les opérations mathématiques respectent la logique booléenne
    Pour le "et"
    0 * 0 = 0
    0 * 1 = 0
    1 * 1 = 1

    Pour le "ou"
    0 + 0 = 0
    1 + 0 = 1
    1 + 1 = 1 (en fait 2 mais là on fait une exception pour rester en booléen)

    A noter aussi les lois de De Morgan qui permettent d'inverser une expression complexe qui disent que
    non (a et b) = non(a) ou non(b)
    non(a ou b) = non(a) et non(b)
    Exemple: un nombre est compris entre 1 et 10 s'il est plus grand ou égal à 1 et plus petit ou égal à 10.
    Inversement un nombre n'est pas compris entre 1 et 10 s'il est plus petit que 1 ou plus grand que 10...

    Accessoirement les expressions booléennes sont des notions de mathématiques portées en informatique générale et ne sont pas que spécifiques à Python...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Besoin d'aide avec Regexp::Assemble
    Par mobscene dans le forum Modules
    Réponses: 5
    Dernier message: 11/04/2007, 12h39
  2. [ASA] J'ai besoin d'aide avec sybase et vb6 svp !!
    Par tibo830 dans le forum SQL Anywhere
    Réponses: 7
    Dernier message: 12/05/2006, 10h09
  3. Besoin d'aide avec TinyXML
    Par Clad3 dans le forum Bibliothèques
    Réponses: 5
    Dernier message: 15/08/2005, 18h20
  4. Réponses: 2
    Dernier message: 29/08/2003, 17h52
  5. Besoin d'aide avec postgresql sous windows NT
    Par Chihuahua dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/07/2003, 08h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo