Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende None y Datos Binarios | Interacciones Entre Tipos
Tipos de Datos en Python

bookNone y Datos Binarios

Los programas reales gestionan valores ausentes y datos binarios. Utilice None para indicar "sin valor" y bytes/bytearray para contenido binario en bruto. Comprenda cuándo es apropiado cada uno y cómo convertir de manera segura entre texto y bytes.

None para "Sin valor"

None es un único objeto que significa "nada aquí".

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

Utilice is None en lugar de comprobaciones de veracidad, ya que 0 y "" también se consideran valores falsos.

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

Valores predeterminados y alternativas

None se utiliza como un marcador claro de que un valor falta intencionadamente. Permite distinguir entre "no se proporcionó valor" y valores válidos como 0 o "", haciendo que los valores predeterminados y las alternativas sean más seguros y predecibles.

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

Funciones y Parámetros

Este ejemplo muestra cómo una función utiliza un parámetro establecido en None como señal de que no se proporcionó ninguna etiqueta. Esto permite que la función asigne un valor predeterminado seguro, mientras que el usuario aún puede sobrescribirlo si es necesario.

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 y bytearray para Datos Binarios

str almacena texto, bytes y bytearray almacenan valores de bytes en bruto.

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

Codificación y Decodificación

La codificación convierte texto en bytes para que pueda almacenarse o transferirse de manera confiable, mientras que la decodificación restaura esos bytes a texto legible. Utilizar una codificación definida como UTF-8 garantiza que los caracteres se conserven correctamente.

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

Mezcla de texto y bytes

El texto (str) y los bytes (bytes) no pueden combinarse directamente porque representan tipos de datos diferentes. Para mezclarlos de forma segura, primero se debe convertir el texto en bytes utilizando una codificación explícita.

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

Diferencias de longitud

Algunos caracteres ocupan un solo elemento de texto pero varios bytes, por lo que su longitud en str y en la forma codificada puede diferir. Esto ocurre porque codificaciones como UTF-8 pueden usar más de un byte para representar un solo carácter.

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

Archivos

Los archivos binarios deben abrirse en modo "rb" para que sus bytes sin procesar se lean exactamente como están almacenados. Esto evita que Python intente interpretar los datos como texto.

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

¿Qué verificación detecta correctamente un valor ausente?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

Can you explain more about when to use None versus other default values?

How do I safely convert between text and bytes in Python?

What are some common mistakes when handling binary data and missing values?

bookNone y Datos Binarios

Desliza para mostrar el menú

Los programas reales gestionan valores ausentes y datos binarios. Utilice None para indicar "sin valor" y bytes/bytearray para contenido binario en bruto. Comprenda cuándo es apropiado cada uno y cómo convertir de manera segura entre texto y bytes.

None para "Sin valor"

None es un único objeto que significa "nada aquí".

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

Utilice is None en lugar de comprobaciones de veracidad, ya que 0 y "" también se consideran valores falsos.

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

Valores predeterminados y alternativas

None se utiliza como un marcador claro de que un valor falta intencionadamente. Permite distinguir entre "no se proporcionó valor" y valores válidos como 0 o "", haciendo que los valores predeterminados y las alternativas sean más seguros y predecibles.

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

Funciones y Parámetros

Este ejemplo muestra cómo una función utiliza un parámetro establecido en None como señal de que no se proporcionó ninguna etiqueta. Esto permite que la función asigne un valor predeterminado seguro, mientras que el usuario aún puede sobrescribirlo si es necesario.

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 y bytearray para Datos Binarios

str almacena texto, bytes y bytearray almacenan valores de bytes en bruto.

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

Codificación y Decodificación

La codificación convierte texto en bytes para que pueda almacenarse o transferirse de manera confiable, mientras que la decodificación restaura esos bytes a texto legible. Utilizar una codificación definida como UTF-8 garantiza que los caracteres se conserven correctamente.

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

Mezcla de texto y bytes

El texto (str) y los bytes (bytes) no pueden combinarse directamente porque representan tipos de datos diferentes. Para mezclarlos de forma segura, primero se debe convertir el texto en bytes utilizando una codificación explícita.

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

Diferencias de longitud

Algunos caracteres ocupan un solo elemento de texto pero varios bytes, por lo que su longitud en str y en la forma codificada puede diferir. Esto ocurre porque codificaciones como UTF-8 pueden usar más de un byte para representar un solo carácter.

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

Archivos

Los archivos binarios deben abrirse en modo "rb" para que sus bytes sin procesar se lean exactamente como están almacenados. Esto evita que Python intente interpretar los datos como texto.

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

¿Qué verificación detecta correctamente un valor ausente?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 3
some-alt