Files
1ereNSI/representation_base/seance_4/PYTHON.md

163 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`.