Estructuras Repetitivas
12. Ejercicios resueltos
12.8. A minusculas sin métodos
Para pasar una letra a mayúsculas a minúscula, debemos observar la Tabla de caracteres ASCII:
Podemos ver que de cualquier letra mayúscula a minúscula en decimal hay una diferencia de 32 ( 'Z'=90 'z'=122 , 122-90=32, idem para otras letras.
Así que para poder cambiar de mayúscula a minúscula debemos sumar 32.
Pero NO podemos sumar a una letra un valor decimal, es por eso que vamos convertir el ASCII a decimal con la función ord(), luego le sumamos 32, y finalmente convertimos el valor decimal restante a ASCII.
Algo a tener presente es que lo que NO sean letras, NO podemos pasara a minúsculas.
desplazamiento=32
texto=input("Ingrese el texto en mayúsculas:")
texto=texto.upper()#Me aseguro de que TODAS sean mayúsculas
print("Vamos a convertir a miúsculas este texto: ", texto)
texto_minusculas=''
for letra in texto:
if letra>='A'and letra<='Z': # para caracter que no es letra @,*,+, espacio, etc
decimal=ord(letra)
decimal+=desplazamiento# nuevo valor decimal del ASCII
nueva_letra=chr(decimal)
#print(letra,decimal,nueva_letra)
texto_minusculas=texto_minusculas+nueva_letra
else:
texto_minusculas=texto_minusculas+letra
print(texto_minusculas)
Ejemplo de la ejecución: