Files
1ereNSI/representation_base/chapitre_4/PYTHON.md

163 lines
3.2 KiB
Markdown
Raw Normal View History

2021-09-01 18:26:16 +02:00
# Type Booléen en Python
## Valeur et Type
En Python, les booléens sont `True` et `False`, ils sont du type `bool`
```python
>>> True
True
>>> print(type(True))
<class 'bool'>
>>> False
False
>>> print(type(False))
<class 'bool'>
```
## Comparaison
Les opérateurs de comparaison courants sont identiques à ceux des mathématiques mais ATTENTION, il ne faut pas confondre légalité et laffectation
Python
```python
>>> variable = 5 # une affectation
>>> 5 == 8 # une égalité (qui est fausse)
False
```
**Le résultat dune comparaison est toujours un booléen**
## Comparaisons des nombres
| Comparaison | Symbole | Exemple | Résultat |
| ----------------- | ------- | ------------- | -------- |
| Égalité | `==` | `1 + 2 == 3` | `True` |
| Différence | `!=` | `1 + 2 != 3` | `False` |
| Supérieur | `>` | `4 > 3` | `True` |
| Inférieur | `<` | `2.2 < 2 * 3` | `True` |
| Supérieur ou égal | `>=` | `5 >= 6` | `False` |
| Inférieur ou égal | `<=` | `8 <= 3` | `False` |
## Appartenance à une structure
On peut tester quun élément appartient à une structure avec le mot clé `in`
```python
>>> "a" in "bonjour" # False
False
>>> "bon" in "bonjour" # True
True
>>> 1 in [2, 3, 4] # False
False
```
# Opérations sur les booléens
Les opérateurs sur les booléens sont de deux types :
- opérateur unaire : prend *un* booléen et en renvoie *un*.
- opérateur binaire : prend *deux* booléens et en renvoie *un*.
## Opérateur unaire : la négation
### La négation: `not`
Cest le seul opérateur *unaire*, il donne le contraire de ce quon lui passe.
```python
>>> not True # s'évalue à False
False
>>> not False # s'évalue à True
True
```
## Opérateur binaire : le OU, noté `or`
**Il est vrai si lun des deux booléens est vrai.**
```python
>>> False or False
False
>>> False or True
True
>>> True or False
True
>>> True or True
True
```
## Opérateur binaire : le ET, noté `and`
**Il est vrai si les deux booléens sont vrais.**
```python
>>> False and False
False
>>> False and True
False
>>> True and False
False
>>> True and True
True
```
## Opérateur binaire : le XOR noté `^`
**Il est vrai si EXACTEMENT un des deux booléens est vrai**
```python
>>> False ^ False
False
>>> False ^ True
True
>>> True ^ False
True
>>> True ^ True
False
```
## Python et les booléens
Python permet de comparer nimporte quoi à un booleen.
Par exemple, une chaîne de caractère vide est évaluée à `False`.`
```python
>>> bool(1)
True
>>> bool(0)
False
>>> bool("")
False
>>> bool("abc")
True
>>> bool([])
False
>>> bool([1, 2])
True
```
- 0 est faux, les autres entiers sont vrais,
- une structure vide est fausse, les autres sont vraies.
## Complément : `None` et lidentité `is`
Python propose la valeur `None` (rien) qui est fréquement utilisé pour représenter labsence dune valeur.
Étant le seul objet du type `NoneType`, on peut tester son *identité* avec `is` :
```python
>>> 1 is None
False
>>> "abc" is None
False
>>> None is None
True
>>> a = 5
>>> a is None
False
```
On verra plus tard quune _fonction_ qui ne se termine par `return ...` renvoie néanmoins `None`.