Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Données None et Binaires | Interactions Entre Types
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Types de Données en Python

bookDonnées None et Binaires

Les programmes réels gèrent les valeurs manquantes et les données binaires. Utiliser None pour indiquer « aucune valeur », et bytes/bytearray pour le contenu binaire brut. Comprendre quand chaque type est approprié et comment convertir en toute sécurité entre texte et octets.

None pour « Aucune valeur »

None est un objet unique signifiant « rien ici ».

1234567
result = None email = None print(result is None) # True print(email is None) # True if result is None: print("No result yet")
copy

Utiliser is None au lieu de vérifications de vérité, car 0 et "" sont également évalués comme faux.

123
value = 0 print(not value) # True print(value is None) # False
copy

Valeurs par défaut et solutions de repli

None est utilisé comme un indicateur clair qu'une valeur est intentionnellement absente. Cela permet de distinguer entre « aucune valeur fournie » et des valeurs valides comme 0 ou "", rendant l'utilisation de valeurs par défaut et de solutions de repli plus sûre et plus prévisible.

1234567
x = None print(x or "unknown") # 'unknown' print("unknown" if x is None else x) x = 0 print(x or "unknown") # 'unknown' (maybe wrong) print("unknown" if x is None else x) # 0
copy

Fonctions et paramètres

Cet exemple montre comment une fonction utilise un paramètre défini à None comme signal qu'aucun tag n'a été fourni. Cela permet à la fonction d'attribuer une valeur par défaut sûre tout en laissant à l'appelant la possibilité de la remplacer si nécessaire.

1234567
def add_tag(text, tag=None): if tag is None: tag = "general" return f"[{tag}] {text}" print(add_tag("hello")) # [general] hello print(add_tag("hello", "news")) # [news] hello
copy

bytes et bytearray pour les données binaires

str contient du texte, bytes et bytearray contiennent des valeurs d'octets brutes.

1234
b1 = b"hello" b2 = bytes([72, 105]) buf = bytearray(b"abc") buf[0] = 65
copy

Encodage et décodage

L'encodage convertit le texte en octets afin qu'il puisse être stocké ou transféré de manière fiable, tandis que le décodage restaure ces octets en texte lisible. L'utilisation d'un encodage défini tel que UTF-8 garantit la préservation correcte des caractères.

123
text = "café" data = text.encode("utf-8") back = data.decode("utf-8")
copy

Mélange de texte et d’octets

Le texte (str) et les octets (bytes) ne peuvent pas être combinés directement car ils représentent des types de données différents. Pour les mélanger en toute sécurité, il est nécessaire de convertir d'abord le texte en octets à l’aide d’un encodage explicite.

123456
try: b"ID:" + "123" except TypeError as e: print(e) ok = b"ID:" + "123".encode("utf-8")
copy

Différences de longueur

Certains caractères occupent un seul élément texte mais plusieurs octets, de sorte que leur longueur en str et sous forme encodée peut différer. Cela s’explique par le fait que des encodages comme UTF-8 peuvent utiliser plus d’un octet pour représenter un seul caractère.

123
ch = "é" len(ch) # 1 len(ch.encode()) # 2
copy

Fichiers

Les fichiers binaires doivent être ouverts en mode "rb" afin que leurs octets bruts soient lus exactement tels qu'ils sont stockés. Cela empêche Python d'essayer d'interpréter les données comme du texte.

# with open("example.png", "rb") as f:
#     blob = f.read()
question mark

Quelle vérification détecte correctement une valeur manquante ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 3

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

bookDonnées None et Binaires

Glissez pour afficher le menu

Les programmes réels gèrent les valeurs manquantes et les données binaires. Utiliser None pour indiquer « aucune valeur », et bytes/bytearray pour le contenu binaire brut. Comprendre quand chaque type est approprié et comment convertir en toute sécurité entre texte et octets.

None pour « Aucune valeur »

None est un objet unique signifiant « rien ici ».

1234567
result = None email = None print(result is None) # True print(email is None) # True if result is None: print("No result yet")
copy

Utiliser is None au lieu de vérifications de vérité, car 0 et "" sont également évalués comme faux.

123
value = 0 print(not value) # True print(value is None) # False
copy

Valeurs par défaut et solutions de repli

None est utilisé comme un indicateur clair qu'une valeur est intentionnellement absente. Cela permet de distinguer entre « aucune valeur fournie » et des valeurs valides comme 0 ou "", rendant l'utilisation de valeurs par défaut et de solutions de repli plus sûre et plus prévisible.

1234567
x = None print(x or "unknown") # 'unknown' print("unknown" if x is None else x) x = 0 print(x or "unknown") # 'unknown' (maybe wrong) print("unknown" if x is None else x) # 0
copy

Fonctions et paramètres

Cet exemple montre comment une fonction utilise un paramètre défini à None comme signal qu'aucun tag n'a été fourni. Cela permet à la fonction d'attribuer une valeur par défaut sûre tout en laissant à l'appelant la possibilité de la remplacer si nécessaire.

1234567
def add_tag(text, tag=None): if tag is None: tag = "general" return f"[{tag}] {text}" print(add_tag("hello")) # [general] hello print(add_tag("hello", "news")) # [news] hello
copy

bytes et bytearray pour les données binaires

str contient du texte, bytes et bytearray contiennent des valeurs d'octets brutes.

1234
b1 = b"hello" b2 = bytes([72, 105]) buf = bytearray(b"abc") buf[0] = 65
copy

Encodage et décodage

L'encodage convertit le texte en octets afin qu'il puisse être stocké ou transféré de manière fiable, tandis que le décodage restaure ces octets en texte lisible. L'utilisation d'un encodage défini tel que UTF-8 garantit la préservation correcte des caractères.

123
text = "café" data = text.encode("utf-8") back = data.decode("utf-8")
copy

Mélange de texte et d’octets

Le texte (str) et les octets (bytes) ne peuvent pas être combinés directement car ils représentent des types de données différents. Pour les mélanger en toute sécurité, il est nécessaire de convertir d'abord le texte en octets à l’aide d’un encodage explicite.

123456
try: b"ID:" + "123" except TypeError as e: print(e) ok = b"ID:" + "123".encode("utf-8")
copy

Différences de longueur

Certains caractères occupent un seul élément texte mais plusieurs octets, de sorte que leur longueur en str et sous forme encodée peut différer. Cela s’explique par le fait que des encodages comme UTF-8 peuvent utiliser plus d’un octet pour représenter un seul caractère.

123
ch = "é" len(ch) # 1 len(ch.encode()) # 2
copy

Fichiers

Les fichiers binaires doivent être ouverts en mode "rb" afin que leurs octets bruts soient lus exactement tels qu'ils sont stockés. Cela empêche Python d'essayer d'interpréter les données comme du texte.

# with open("example.png", "rb") as f:
#     blob = f.read()
question mark

Quelle vérification détecte correctement une valeur manquante ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 3
some-alt