Donné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. Savoir 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 ».
1234567result = None email = None print(result is None) # True print(email is None) # True if result is None: print("No result yet")
Utiliser is None au lieu de vérifications de véracité, car 0 et "" sont également considérés comme faux.
123value = 0 print(not value) # True print(value is None) # False
Valeurs par défaut et solutions de repli
1234567x = 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
Fonctions et paramètres
1234567def 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
bytes et bytearray pour les données binaires
str contient du texte, bytes et bytearray contiennent des valeurs brutes d'octets.
1234b1 = b"hello" b2 = bytes([72, 105]) buf = bytearray(b"abc") buf[0] = 65
Encodage et décodage
UTF-8 est un encodage de texte qui convertit les caractères en octets afin qu'ils puissent être stockés et transmis. Il prend en charge tous les caractères Unicode tout en restant compatible avec ASCII.
123text = "café" data = text.encode("utf-8") back = data.decode("utf-8")
Mélange de texte et d'octets
123456try: b"ID:" + "123" except TypeError as e: print(e) ok = b"ID:" + "123".encode("utf-8")
Différences de longueur
123ch = "é" len(ch) # 1 len(ch.encode()) # 2
Fichiers
# with open("example.png", "rb") as f:
# blob = f.read()
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Can you explain when to use None versus an empty string or zero?
How do I safely convert between bytes and strings in Python?
What are common mistakes to avoid when working with None and binary data?
Génial!
Completion taux amélioré à 3.45
Donné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. Savoir 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 ».
1234567result = None email = None print(result is None) # True print(email is None) # True if result is None: print("No result yet")
Utiliser is None au lieu de vérifications de véracité, car 0 et "" sont également considérés comme faux.
123value = 0 print(not value) # True print(value is None) # False
Valeurs par défaut et solutions de repli
1234567x = 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
Fonctions et paramètres
1234567def 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
bytes et bytearray pour les données binaires
str contient du texte, bytes et bytearray contiennent des valeurs brutes d'octets.
1234b1 = b"hello" b2 = bytes([72, 105]) buf = bytearray(b"abc") buf[0] = 65
Encodage et décodage
UTF-8 est un encodage de texte qui convertit les caractères en octets afin qu'ils puissent être stockés et transmis. Il prend en charge tous les caractères Unicode tout en restant compatible avec ASCII.
123text = "café" data = text.encode("utf-8") back = data.decode("utf-8")
Mélange de texte et d'octets
123456try: b"ID:" + "123" except TypeError as e: print(e) ok = b"ID:" + "123".encode("utf-8")
Différences de longueur
123ch = "é" len(ch) # 1 len(ch.encode()) # 2
Fichiers
# with open("example.png", "rb") as f:
# blob = f.read()
Merci pour vos commentaires !