¡Hola! En este tutorial veremos un modo de convertir palabras en mayúsculas y/o minúsculas sin usar funciones predefinidas de Python.
Para comenzar definiremos dos diccionarios: AlfabetoMayuscula
y AlfabetoMinuscula
. Estos diccionarios contienen las correspondencias entre las letras del alfabeto y sus valores ASCII. Esto será útil para convertir entre mayúsculas y minúsculas más adelante en el programa
AlfabetoMayuscula = {'A': 65, 'B': 66, 'C': 67, 'D': 68, 'E': 69, 'F': 70, 'G': 71, 'H': 72, 'I': 73, 'J': 74, 'K': 75, 'L': 76, 'M': 77, 'N': 78, 'O': 79, 'P': 80, 'Q': 81, 'R': 82, 'S': 83, 'T': 84, 'U': 85, 'V': 86, 'W': 87, 'X': 88, 'Y': 89, 'Z': 90}
AlfabetoMinuscula = {'a': 97, 'b': 98, 'c': 99, 'd': 100, 'e': 101, 'f': 102, 'g': 103, 'h': 104, 'i': 105, 'j': 106, 'k': 107, 'l': 108, 'm': 109, 'n': 110, 'o': 111, 'p': 112, 'q': 113, 'r': 114, 's': 115, 't': 116, 'u': 117, 'v': 118, 'w': 119, 'x': 120, 'y': 121, 'z': 122}
Ahora definiremos una función llamada mostrar_menu()
que simplemente imprime un menú de opciones en la consola. El menú muestra tres opciones: convertir a mayúsculas, convertir a minúsculas o no hacer nada. Será la única función que usaremos en todo el programa.
defmostrar_menu():
print("Selecciona una opción:")
print("1. Convertir a MAYUSCULAS")
print("2. Convertir a minúsculas")
print("3. nada")
Esta línea de código solicitaremos al usuario que ingrese una palabra y almacena la entrada en la variable entrada
.
entrada = input("Ingresa una palabra: ")
Aquí llamamos a la función mostrar_menu()
para mostrar el menú de opciones. Luego, el programa solicita al usuario que ingrese el número de la opción deseada y almacena esta entrada en la variable opcion
.
mostrar_menu()
opcion = input("Ingrese el número de la opción deseada: ")
En esta sección, el programa verifica si la opción ingresada por el usuario es '1'
, lo que significa que el usuario eligió convertir la palabra a mayúsculas. Luego, itera sobre cada caracter
en la entrada del usuario. Si el caracter
está en AlfabetoMinuscula
, se calcula el valor ASCII correspondiente a la letra mayúscula y se imprime. Si no está en AlfabetoMinuscula, significa que es un caracter que está en mayúscula y se imprime tal como está.
if opcion == '1':
for caracter in entrada:
if caracter in AlfabetoMinuscula:
valor = AlfabetoMinuscula[caracter]-32for clave, val in AlfabetoMayuscula.items():
if val == valor:
print(clave, end = "")
else:
print(caracter, end = "")
print()
En esta sección, el programa verifica si la opción ingresada por el usuario es '2'
, lo que significa que el usuario eligió convertir la palabra a minúsculas. Luego, itera sobre cada caracter
en la entrada del usuario. Si el caracter
está en AlfabetoMayuscula
, se calcula el valor ASCII correspondiente a la letra minúscula y se imprime. Si no está en AlfabetoMayuscula
, significa que es un caracter
ya está en minúscula y se imprime tal como está.
elif opcion == '2':
for caracter in entrada:
if caracter in AlfabetoMayuscula:
valor = AlfabetoMayuscula[caracter]+32for clave, val in AlfabetoMinuscula.items():
if val == valor:
print(clave, end = "")
else:
print(caracter, end = "")
print()
Si el usuario elige la opción ‘3’, el programa simplemente imprime la palabra ingresada, indicando que no se realizará ninguna conversión.
elif opcion == '3':
print('Su texto ingresado fue: ', entrada)
Finalmente, si el usuario ingresa una opción inválida, el programa imprime un mensaje indicando que la opción es inválida y solicita al usuario que seleccione una opción válida.
else:
print("Opción inválida. Por favor, selecciona una opción válida.")
BONUS
El siguiente algoritmo imprime el código ASCII en formato diccionario.
AlfabetoMinuscula = {}
AlfabetoMayuscula = {}
# Códigos ASCII para letras minúsculas
for letra inrange(97, 123):
AlfabetoMinuscula[chr(letra)] = letra
# Códigos ASCII para letras mayúsculas
for letra inrange(65, 91):
AlfabetoMayuscula[chr(letra)] = letra
print("Alfabeto en minúsculas:")
print(AlfabetoMinuscula)
print("\nAlfabeto en mayúsculas:")
print(AlfabetoMayuscula)
Gracias por vuestra atención y que os vaya bien en la programación.