La función ord() en Python puede llegar a serte de mucha utilidad para manejar codificación de texto y trabajar con Unicode, ya que te ayuda a convertir caracteres en valores numéricos. El día de hoy veremos su funcionamiento y cómo optimizar su uso de la mejor manera.
¿Qué es ord() en Python?
Ord() toma un caracter como entrada y nos devuelve el número entero que corresponde a su punto de código Unicode. Esto quiere decir que esta función te permite convertir letras, símbolos o cualquier otro caracter en un valor numérico que le corresponda. Veamos cómo se usa.
¿Cómo se utiliza ord()?
La función ord tiene una sintaxis y estructura cómoda:
ord(caracter)
En este caso, el argumento caracter tiene que ser necesariamente una cadena de texto de un solo caracter. Si proporcionas una cadena que no cumpla las especificaciones, es decir, con más de un caracter o un valor que no sea un string, Python arroja un error de inmediato.
Veamos un ejemplo:
print(ord('A'))
Salida:
65
🔴 ¿Quieres Aprender a Programar con Python? 🔴
Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semanaEsto quiere decir que el carácter “A” tiene un valor Unicode de 65.
¿Qué podemos hacer con ord()?
Esta funcionalidad nos permite hacer varias cosas, veamos algunos ejemplos de su uso:
- Conversión de caracteres a códigos Unicode: puedes usarla para convertir letras o símbolos en números. Veamos cómo:
# Letras mayúsculas y minúsculas
print(ord('A')) # Salida: 65
print(ord('a')) # Salida: 97
# Caracteres especiales
print(ord('€')) # Salida: 8364
print(ord(' ')) # Salida: 32 (espacio)
- Manejo de errores con ord(): Si has intentado usar ord con una cadena de más de un caracter o con un valor que no sea string, por ejemplo un int, lo que habrás obtenido será un error, ¿verdad? así que no lo hagas:
print(ord('AB'))
Esto generará un error de tipo TypeError:
TypeError: ord() expected a character, but string of length 2 found
Para evitar este error, asegúrate de que el argumento sea un único carácter.
- Generación de tablas de códigos Unicode: también puedes usar ord para crear tablas que relacionen caracteres con sus respectivod valores Unicode. Es muy recomendable si estás explorando rangos de caracteres:
for char in 'ABCDE':
print(f"{char}: {ord(char)}")
Salida:
A: 65
B: 66
C: 67
D: 68
E: 69
¿En qué contextos puedes aplicar ord()?
La función ord tiene múltiples aplicaciones entre las que encontramos:
- Análisis de texto: Extraer y analizar valores numéricos de caracteres en cadenas.
- Cifrado básico: Implementar algoritmos simples de codificación basados en valores Unicode.
- Interoperabilidad con otros sistemas: Algunos protocolos y sistemas binarios utilizan códigos Unicode, y ord() facilita estas conversiones.
- Validación de entradas: Verificar que los caracteres ingresados estén dentro de un rango específico.
Por ejemplo, puedes usar ord() para verificar si un carácter es alfabético:
def es_alfabetico(caracter):
codigo = ord(caracter)
return (65 <= codigo <= 90) or (97 <= codigo <= 122)
print(es_alfabetico('A')) # Salida: True
print(es_alfabetico('1')) # Salida: False
Diferencias entre ord() y chr()
Aunque ord() convierte caracteres en números, su función complementaria, chr(), realiza el proceso inverso: transforma un número entero en un carácter. Estas dos funciones en Python suelen usarse juntas para trabajar con codificaciones de texto.
Por ejemplo:
print(ord('A')) # Salida: 65
print(chr(65)) # Salida: A
A modo de resumen:
Aspecto | ord() | chr() |
---|---|---|
Función principal | Convierte un carácter en su valor numérico Unicode. | Convierte un valor numérico Unicode en un carácter. |
Tipo de entrada | Un carácter (cadena de un solo carácter). | Un número entero válido dentro del rango Unicode (0 a 1,114,111). |
Tipo de salida | Un número entero que representa el punto de código Unicode. | Una cadena de texto que contiene el carácter correspondiente. |
Errores comunes | Lanza un TypeError si se pasa una cadena de más de un carácter o un valor no string. | Lanza un ValueError si el número está fuera del rango Unicode. |
Uso común | Analizar texto, cifrar información o validar caracteres. | Generar caracteres, construir alfabetos o interpretar datos codificados. |
Ejemplo de uso | ord('A') devuelve 65 . | chr(65) devuelve 'A' . |
¿Quieres seguir aprendiendo sobre este interesante tema? Únete a nuestro bootcamp en programación desde cero y adquiere las habilidades necesarias para triunfar en el mercado laboral más prolífico del sector. Aprende de los mejores los lenguajes más actuales y de la manera más simple. ¡Da el primer paso hacia tu nueva carrera y apúntate ahora!