La función Python byte() convierte un objeto en un objeto inmutable representado por bytes de tamaño y datos dados.
Sintaxis: bytes (src, enc, err)
Parámetros:
- src: el objeto de origen que debe convertirse
- enc: la codificación requerida en caso de que el objeto sea una string
- err: forma de manejar el error en caso de que falle la conversión de string.
Devuelve: objeto inmutable de bytes que consta de caracteres Unicode de 0 a 256 según el tipo de src.
- entero: Devuelve una array de tamaño inicializado a nulo
- iterable: devuelve una array de tamaño iterable con elementos iguales a los elementos iterables (0-256)
- string : Devuelve la string codificada acc. para enc y si la codificación falla, realiza la acción de acuerdo con el error especificado.
- sin argumentos: Devuelve una array de tamaño 0.
Ejemplo de bytes() de Python
Ejemplo 1: Convertir string a bytes
En este ejemplo, vamos a convertir strings a bytes usando la función bytes() de Python, para esto tomamos una variable con string y la pasamos a la función bytes() con parámetros UTF-8. UTF-8 es capaz de codificar los 1 112 064 puntos de código de caracteres válidos en Unicode utilizando de una a cuatro unidades de código de un byte
Python3
# python code demonstrating # int to bytes str = "Welcome to Geeksforgeeks" arr = bytes(str, 'utf-8') print(arr)
Producción:
b'Welcome to Geeksforgeeks'
Ejemplo 2: Array de bytes de un entero
En este ejemplo, vamos a ver cómo obtener un arreglo de bytes de un entero usando la función bytes() de Python, para esto pasaremos el entero a la función bytes().
Python3
# python code to demonstrate # int to bytes number = 12 result = bytes(number) print(result)
Producción:
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Ejemplo 3: parámetros nulos con bytes()
Cuando no pasamos nada en la función bytes(), crea una array de tamaño 0.
Python3
print(bytes())
Producción:
b''
Ejemplo 4: demostración de byte() en enteros, ninguno e iterables
Python3
# Python 3 code to demonstrate the # working of bytes() on int, iterables, none # initializing integer and iterables a = 4 lis1 = [1, 2, 3, 4, 5] # No argument case print ("Byte conversion with no arguments : " + str(bytes())) # conversion to bytes print ("The integer conversion results in : " + str(bytes(a))) print ("The iterable conversion results in : " + str(bytes(lis1)))
Producción:
Byte conversion with no arguments : b'' The integer conversion results in : b'\x00\x00\x00\x00' The iterable conversion results in : b'\x01\x02\x03\x04\x05'
Comportamiento de bytes con strings
Los bytes aceptan una string como argumento y requieren un esquema de codificación para realizarla. El aspecto más importante de esto es el manejo de errores en caso de falla de codificación, algunos de los esquemas de manejo de errores definidos son:
Controladores de errores de string:
- strict : genera el UnicodeDecodeError predeterminado en caso de falla de codificación.
- ignore : ignora el carácter no codificable y codifica la string restante.
- replace : reemplaza el carácter no codificable con un ‘?’.
Ejemplo : demostración de bytes() usando una string
Python3
# Python 3 code to demonstrate the # working of bytes() on string # initializing string str1 = 'GeeksfÖrGeeks' # Giving ascii encoding and ignore error print("Byte conversion with ignore error : " + str(bytes(str1, 'ascii', errors='ignore'))) # Giving ascii encoding and replace error print("Byte conversion with replace error : " + str(bytes(str1, 'ascii', errors='replace'))) # Giving ascii encoding and strict error # throws exception print("Byte conversion with strict error : " + str(bytes(str1, 'ascii', errors='strict')))
Producción:
Byte conversion with ignore error : b'GeeksfrGeeks' Byte conversion with replace error : b'Geeksf?rGeeks'
Excepción :
UnicodeEncodeError: el códec ‘ascii’ no puede codificar el carácter ‘\xd6’ en la posición 6: el ordinal no está en el rango (128)
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA