Files
1ereNSI/representation_base/chapitre_4/PYTHON.md

202 lines
4.4 KiB
Markdown
Raw Normal View History

2023-07-03 17:54:40 +02:00
## Introduction
> Le type booléen, ou `bool`, est un type de données en Python qui a deux valeurs possibles : `True` (vrai) ou `False` (faux). Il est généralement utilisé pour effectuer des comparaisons et des opérations logiques.
2021-09-01 18:26:16 +02:00
## Valeur et Type
2023-07-03 17:54:40 +02:00
En Python, les booléens sont représentés par `True` et `False`, et sont du type `bool`. Par exemple :
2021-09-01 18:26:16 +02:00
```python
>>> True
True
>>> print(type(True))
<class 'bool'>
>>> False
False
>>> print(type(False))
<class 'bool'>
```
2023-07-03 17:54:40 +02:00
------
2021-09-01 18:26:16 +02:00
2023-07-03 17:54:40 +02:00
## Comparaison
2021-09-01 18:26:16 +02:00
2023-07-03 17:54:40 +02:00
Les opérateurs de comparaison en Python sont similaires à ceux utilisés en mathématiques. Il est important de ne pas confondre l'opérateur d'affectation (`=`) avec l'opérateur d'égalité (`==`). Par exemple :
2021-09-01 18:26:16 +02:00
```python
>>> variable = 5 # une affectation
>>> 5 == 8 # une égalité (qui est fausse)
False
```
2023-07-03 17:54:40 +02:00
**Le résultat d'une comparaison est toujours un booléen.**
------
2021-09-01 18:26:16 +02:00
## Comparaisons des nombres
2023-07-03 17:54:40 +02:00
On peut comparer les nombres en utilisant les opérateurs de comparaison suivants :
2021-09-01 18:26:16 +02:00
2023-07-03 17:54:40 +02:00
- Égalité : `==`
- Différence : `!=`
- Supérieur : `>`
- Inférieur : `<`
- Supérieur ou égal : `>=`
- Inférieur ou égal : `<=`
2021-09-01 18:26:16 +02:00
2023-07-03 17:54:40 +02:00
Par exemple :
2021-09-01 18:26:16 +02:00
```python
2023-07-03 17:54:40 +02:00
>>> 1 + 2 == 3
True
>>> 1 + 2 != 3
2021-09-01 18:26:16 +02:00
False
2023-07-03 17:54:40 +02:00
>>> 4 > 3
2021-09-01 18:26:16 +02:00
True
2023-07-03 17:54:40 +02:00
>>> 2.2 < 2 * 3
True
>>> 5 >= 6
False
>>> 8 <= 3
2021-09-01 18:26:16 +02:00
False
```
2023-07-03 17:54:40 +02:00
------
2021-09-01 18:26:16 +02:00
2023-07-03 17:54:40 +02:00
## Appartenance à une structure
2021-09-01 18:26:16 +02:00
2023-07-03 17:54:40 +02:00
On peut utiliser l'opérateur `in` pour vérifier si un élément est présent dans une structure de données. Par exemple :
2021-09-01 18:26:16 +02:00
```python
2023-07-03 17:54:40 +02:00
>>> "a" in "bonjour" # False
2021-09-01 18:26:16 +02:00
False
2023-07-03 17:54:40 +02:00
>>> "bon" in "bonjour" # True
2021-09-01 18:26:16 +02:00
True
2023-07-03 17:54:40 +02:00
>>> 1 in [2, 3, 4] # False
False
2021-09-01 18:26:16 +02:00
```
2023-07-03 17:54:40 +02:00
------
## Opérations sur les booléens
2021-09-01 18:26:16 +02:00
2023-07-03 17:54:40 +02:00
Les opérations sur les booléens comprennent la négation (`not`), l'opérateur OU (`or`), l'opérateur ET (`and`) et l'opérateur XOR (`^`). Par exemple :
2021-09-01 18:26:16 +02:00
```python
2023-07-03 17:54:40 +02:00
# La négation
>>> not True
False
>>> not False
True
# L'opérateur OU
2021-09-01 18:26:16 +02:00
>>> False or False
False
>>> False or True
True
>>> True or False
True
>>> True or True
True
2023-07-03 17:54:40 +02:00
# L'opérateur ET
2021-09-01 18:26:16 +02:00
>>> False and False
False
>>> False and True
False
>>> True and False
False
>>> True and True
True
2023-07-03 17:54:40 +02:00
# L'opérateur XOR
2021-09-01 18:26:16 +02:00
>>> False ^ False
False
>>> False ^ True
True
>>> True ^ False
True
>>> True ^ True
False
```
2023-07-03 17:54:40 +02:00
------
2021-09-01 18:26:16 +02:00
2023-07-03 17:54:40 +02:00
## Python et les booléens
2021-09-01 18:26:16 +02:00
2023-07-03 17:54:40 +02:00
Python permet d'évaluer n'importe quel type de donnée comme un booléen. Par exemple :
2021-09-01 18:26:16 +02:00
```python
2023-07-03 17:54:40 +02:00
>>> bool(1) # Vrai
2021-09-01 18:26:16 +02:00
True
2023-07-03 17:54:40 +02:00
>>> bool(0) # Faux
2021-09-01 18:26:16 +02:00
False
2023-07-03 17:54:40 +02:00
>>> bool("") # Faux
2021-09-01 18:26:16 +02:00
False
2023-07-03 17:54:40 +02:00
>>> bool("abc") # Vrai
2021-09-01 18:26:16 +02:00
True
2023-07-03 17:54:40 +02:00
>>> bool([]) # Faux
2021-09-01 18:26:16 +02:00
False
2023-07-03 17:54:40 +02:00
>>> bool([1, 2]) # Vrai
2021-09-01 18:26:16 +02:00
True
```
2023-07-03 17:54:40 +02:00
En règle générale, zéro, les structures de données vides et `None` sont évalués comme `False`, tandis que les autres valeurs sont évaluées comme `True`.
2021-09-01 18:26:16 +02:00
2023-07-03 17:54:40 +02:00
------
2021-09-01 18:26:16 +02:00
2023-07-03 17:54:40 +02:00
## Complément : `None` et l'identité `is`
2021-09-01 18:26:16 +02:00
2023-07-03 17:54:40 +02:00
Python propose la valeur `None` pour représenter l'absence d'une valeur. On peut utiliser l'opérateur `is` pour vérifier l'identité d'une valeur. Par exemple :
2021-09-01 18:26:16 +02:00
```python
>>> 1 is None
False
>>> "abc" is None
False
>>> None is None
True
>>> a = 5
>>> a is None
False
```
2023-07-03 17:54:40 +02:00
Une fonction qui ne se termine pas par `return ...` renvoie implicitement `None`.
--------
## Opérations bit à bit
Python, comme de nombreux autres langages de programmation, fournit des opérateurs bit à bit pour manipuler les nombres au niveau des bits.
Ces opérateurs incluent les opérations AND (&), OR (|), XOR (^), NOT (~), ainsi que les décalages de bits à gauche (<<) et à droite (>>).
Voici un exemple de leur utilisation :
```python
a = 10 # 1010 en binaire
b = 4 # 0100 en binaire
print(a & b) # Opération AND: 0000 en binaire (0 en decimale)
print(a | b) # Opération OR: 1110 en binaire (14 en decimale)
print(a ^ b) # Opération XOR: 1110 en binaire (14 en decimale)
print(~a) # Opération NOT: 0101 en binaire (-11 en decimale, complément à deux)
print(a << 1) # Opération décalage à gauche: 10100 en binaire (20 en decimale)
print(a >> 1) # Opération décalage à droite: 0101 en binaire (5 en decimale)
```
---------
Auteur : Florian Mathieu
Licence CC BY NC
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Licence Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a> <br />Ce cours est mis à disposition selon les termes de la <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Licence Creative Commons Attribution - Pas dUtilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International</a>.