😀ANALIZADOR DE TEXTO

// Some code

```python
print("BIENVENIDO AL ANALIZADOR DE TEXTO")

#ingresa el texto
text_usuario = input("ingrese por favor cualquier texto por lo menos de un parrafo: ")

#ingresa las tres letras
consulta_usuario1 = input("Elija por favor una primer letra a su eleccion: ")
consulta_usuario2 = input("Elija por favor una primer letra a su eleccion: ")
consulta_usuario3 = input("Elija por favor una primer letra a su eleccion: ")


#transformar todo el texto a minuscula
text_usuario = (text_usuario.lower())


#transformar todas las letras ingresadas a minuscula
letra1 = (consulta_usuario1.lower())
letra2 = (consulta_usuario2.lower())
letra3 = (consulta_usuario3.lower())


#cuantas veces aparece cada letra elegida

print("CANTIDAD DE VECES QUE SE REPITEN EN EL TEXTO SUS LETRAS ELEGIDAS: ")

total_de_letras1 = (text_usuario.count(letra1))
total_de_letras2 = (text_usuario.count(letra2))
total_de_letras3 = (text_usuario.count(letra3))


print(f"En el texto la letra (({letra1})) se encuentra esta cantidad de veces: (({total_de_letras1}))")
print(f"En el texto la letra (({letra2})) se encuentra esta cantidad de veces: (({total_de_letras2}))")
print(f"En el texto la letra (({letra3})) se encuentra esta cantidad de veces: (({total_de_letras3}))")


#cuantas palabras ahi en el texto en total


print("CANTIDAD DE PALABRAS QUE CONTIENE SU TEXTO: ")

list_text_user = text_usuario.split()
total_palabras = len(list_text_user)

print(f"Su texto contiene un total de (({total_palabras})) palabras")



#cual es la primera letra del texto y la ultima

print("CON QUE LETRA EMPIEZA Y TERMINA SU TEXTO: ")

primer_letra = text_usuario[0]
ulti_letra = text_usuario[-1] 

print(f"Su texto comienza con la letra (({primer_letra})) y termina con la letra (({ulti_letra}))")



#como quedaria el texto si invirtieramos las palabras

print("PROCESANDO EL TEXTO AL REVES: ")

list_text_user.reverse()

print("Su texto escrito alreves quedaria de la siguiente manera: ")
print(" ".join(list_text_user))



#la palabra python se encuentra en el texto ??

print("BUSCANDO LA PALABRA PYTHON: ")

python_etara = "python" in list_text_user
respuesta_python = {True:"La palabra ((python)) esta en el texto",False:"La palabra ((python)) no esta en el texto"}

print(f"{respuesta_python[python_etara]}")
print("MUCHAS GRACIAS POR UTILIZAR NUESTRO ANALIZADOR DE TEXTO, HASTA LA PROXIMA :)")


#BY PAIMON

```

CODEO APRENDIENDO LOS CONCEPTOS DEL DIA 3

// Some code

```python
#uso de index, para buscar una letra en particular o buscar atraves de un orden numerico

mi_texto = "perfecto"
resultado = mi_texto.index("e")
print(resultado)


mi_texto = "perfecto"
resultado = mi_texto[3]
print(resultado)


#conteo negativo arranca cero del principio y luego el conteo alreves desde la derecha
mi_texto = "perfecto"
resultado = mi_texto[-2]
print(resultado)


#nos busca tambien por palabra y nos da el numero de posicion desde donde comisenza
mi_texto = "perfecto nos estamos viendo el lunes"
resultado = mi_texto.index("estamos")
print(resultado)


#comienza buscando de izq a der desde la posicion que le dimos con el numero y respeta el conteo desde donde le dimos.
mi_texto = "perfecto nos estamos viendo el lunes"
resultado = mi_texto.index("e",15)
print(resultado)


#tambien podemos hacer que busque marcandole un sector ej: entre posicion 24 y 29
mi_texto = "perfecto nos estamos viendo el lunes"
resultado = mi_texto.index("e",24,29)
print(resultado)



#rindex busca de derecha a izquierda osea alreves, pero devuelve el numero de indice real osea de izquierda a derecha
mi_texto = "perfecto nos estamos viendo el lunes"
resultado = mi_texto.rindex("e")
print(resultado)


#practicas


frase = "En teoría, la teoría y la práctica son los mismos. En la práctica, no lo son."
resultado = frase.index("práctica")
print(resultado)



frase = "En teoría, la teoría y la práctica son los mismos. En la práctica, no lo son."
resultado = frase.rindex("práctica")
print(resultado)



#slising seria como cortar y agregar en un avariable


texto = "ABCDEFGHIJKLM"
fragmento = texto[2]
print(fragmento)


#va a extraer los caracteres que esten desde position 2 hasta la 5 sin incluirlo
texto = "ABCDEFGHIJKLM"
fragmento = texto[2:5]
print(fragmento)


#cuando pones un valos y luego  : sin otro valor despues python interpreta que queremos extraer desde 2 hasta el final 
texto = "ABCDEFGHIJKLM"
fragmento = texto[2:]
print(fragmento)



#cuando no ponemos un valor, y ponemos : y luego un valor, va a extraer alreves, osea desde la posicion 0 hasta el valor  posicion que dimos
texto = "ABCDEFGHIJKLM"
fragmento = texto[:5]
print(fragmento)


#el tercer factor indica posiciones salteadas, osea nos devuelve desde position 2 saltea dos y nos da un valor y asi consecutivamente hasta llegar posicion 10
texto = "ABCDEFGHIJKLM"
fragmento = texto[2:10:2]
print(fragmento)


#como no especificamos los dos primeros valores y solo el que saltea de forma negativa, nos imprime alreves el conteo
texto = "ABCDEFGHIJKLM"
fragmento = texto[::-1]
print(fragmento)


#practicas


frase = "Controlar la complejidad es la esencia de la programación"
resultado = frase[0:9]
print(resultado)


frase = "Nunca confíes en un ordenador que no puedas lanzar por una ventana"
resultado = frase[9::3]
print(resultado)


frase = "Es genial trabajar con ordenadores. No discuten, lo recuerdan todo y no se beben tu cerveza"
resultado = frase[::-1]
print(resultado)




#metodos string

#upper sin parametros dentro del parrentesis nos transforma todo el texto en mayuscula
texto = "este es un texto de prueba"
resultado = texto.upper()
print(resultado)


#nos imprime la solo la letra en la posicion que le dimos en mayuscula 
texto = "este es un texto de prueba"
resultado = texto[3].upper()
print(resultado)


#lower sin parametros dentro del parrentesis nos transforma todo el texto en minuscula
texto = "Este es un texto de prueba"
resultado = texto.lower()
print(resultado)

#igual dandole la posicion
texto = "Este es un texto de prueba"
resultado = texto[0].lower()
print(resultado)


#split este separa los elementos para guardarlos en una lista, toma por defecto los espacios como separadores
texto = "Este es un texto de prueba"
resultado = texto.split()
print(resultado)


#indicandole un parametro a split, definimos que va a tomar el como separador
texto = "Este es un texto de prueba"
resultado = texto.split("t")
print(resultado)


#join lo que hace es unir los elementos de una LISTA y le definimos el lemento separador para unirlos, en este caso " " (espacio), luego join y dentro del parentecis el parametro
q = "como"
a = "perro"
b = "y"
c = "gato"
unido = " ".join([q,a,b,c])
print(unido)



#find muy parecido a index, seria para buscar tambien.(a diferencia de index, cuando find no encuentra un caracter que buscamos, nos devuelve -1, no un error como index)
texto = "Este es un texto de prueba"
resultado = texto.find("z")
print(resultado)



#replace lo que hace es remplazar la palabra que decignemos, por la que querramos, buscando solo y cambiandola en la primera posicion donde la encuentre
texto = "Este es un texto de prueba"
resultado = texto.replace("prueba","verdad")
print(resultado)



texto = "Este es un texto de prueba"
resultado = texto.replace("e","i")
print(resultado)





#practicas


frase = "Especialmente en las comunicaciones electrónicas, la escritura enteramente en mayúsculas equivale a gritar."
print(frase.upper())


lista_palabras = ["La","legibilidad","cuenta."]
print(" ".join(lista_palabras))




frase = "Si la implementación es difícil de explicar, puede que sea una mala idea."
cambio1 = frase.replace("difícil","fácil") 
cambio2 = cambio1.replace("mala","buena")
print(cambio2)




#propiedades de string (los cuales por si mismos son inmutables)

#nombre  = "paimon"
#nombre[2] = "y"
#print(nombre)



#a no ser que se la cargue en una variable y se le de formato o modifique desde ahi

nombre = "paimon"
nombre = "paymon"
print(nombre)

#aca concatenamos dos string que estan guardados dentro de dos variables
n1 = "pai"
n2 = "mon"
print(n1+n2)


#tambien el string estando dentro de una variable se lo puede multiplicar y editar de varias formas, pero por si solo como string No.
n1 = "pai"
n2 = "mon"
print(n1*10)


#puede contener varios saltos de lineas, sin requerir de \n, usando """ ej: para escribir un poema
poema = """Mil pequeños peces blancos
como si hirviera
el color del agua"""
print(poema)


# haciendo usdo de in podemos preguntar si dentro del poema contiene la palabra agua, para que nos responda con true o false
poema = """Mil pequeños peces blancos
como si hirviera
el color del agua"""
print("agua" in poema)


poema = """Mil pequeños peces blancos
como si hirviera
el color del agua"""
print("perro" in poema)


#en fin en la anterior con in preguntamos si la palabra esta en el texto, y en este caso preguntamos si NO esta en el texto, por ende nos responde verdadero TRUE
poema = """Mil pequeños peces blancos
como si hirviera
el color del agua"""
print("perro" not in poema)


#con len podemos ver el largo de un elemento, en este caso de poema
poema = """Mil pequeños peces blancos
como si hirviera
el color del agua"""
print(len(poema))



#practicas

repe = "Repetición"
print(repe*15)


haiku = """Tierra mojada
mis recuerdos de viaje,
entre las lluvias"""
print("agua" not in haiku)


largo = "electroencefalografista"
print(len(largo))




#listas pueden ser de distintos tipos de dato, pero ordenados. se puede tener listas dentro de listas, y son inmutables se pueden modificar


mi_lista = ["a","b","c"]
print(type(mi_lista))


#se le pueden mesclar distintos tipos de datos
mi_lista = ["a","b","c"]
otra_lista = ["perro","60.66","80"]
print(type(mi_lista))
print(type(otra_lista))



#tambien se puede usar len para saber la cantidad de elementos paalabras que componen la lista
otra_lista = ["perro","60.66","80"]
resultado = len(otra_lista)
print(resultado)




#podemos extraer lo que pongamos en la posicion q le pedimos
otra_lista = ["perro","60.66","80"]
resultado = otra_lista[2]
print(resultado)


#tambien se puede determinar de donde hast donde extraer
otra_lista = ["perro","60.66","80"]
resultado = otra_lista[0:2]
print(resultado)


#concatenamos dos listas en una en el print, sin perder las listas originales, a no ser que creemos una variable de tercer lista
otra_lista = ["perro","60.66","80"]
otra_lista2 = ["gato","50","30.5"]
resultado = otra_lista[0:]
print(otra_lista+otra_lista2)




otra_lista = ["perro","60.66","80"]
otra_lista2 = ["gato","50","30.5"]
mi_lista3 = otra_lista+otra_lista2
print(mi_lista3)


#podemos modificar un elemento d una lista por otro seleccionando su posicion
otra_lista = ["perro","60.66","80"]
otra_lista2 = ["gato","50","30.5"]
mi_lista3 = otra_lista+otra_lista2
mi_lista3[0] = "loro"
print(mi_lista3)



#con append podemos agregar un elemento a un a lista, y lo agrega al final
otra_lista = ["perro","60.66","80"]
otra_lista2 = ["gato","50","30.5"]
mi_lista3 = otra_lista+otra_lista2
mi_lista3[0] = "loro"
mi_lista3.append("toro")
print(mi_lista3)



#pop sirve para remover uno de los elementos de la lista, sin parametros te elimina el ultimo elememtos de una lista, a no ser que se le de una posicion especifica a eliminar
otra_lista = ["perro","60.66","80"]
otra_lista2 = ["gato","50","30.5"]
mi_lista3 = otra_lista+otra_lista2
mi_lista3.pop()
print(mi_lista3)




otra_lista = ["perro","60.66","80"]
otra_lista2 = ["gato","50","30.5"]
mi_lista3 = otra_lista+otra_lista2
mi_lista3.pop(0)
print(mi_lista3)


#tambien se puede guardar el elemento eliminido con pop, creando una variable antes.
otra_lista = ["perro","60.66","80"]
otra_lista2 = ["gato","50","30.5"]
mi_lista3 = otra_lista+otra_lista2
eliminado = mi_lista3.pop(0)
print(mi_lista3)
print("se elimino la palabra: "+eliminado)




# sort  permite ordenar una lista de forma alfabetica o numerica. (nos devuelve info que no puede ser guardada en una variable, por que no es un elemennto, es de tipo nonetype)
lista = ["m","l","a","z","h"]
lista.sort()
print(lista)



#nos da vuelta el orden de la lista 
lista =["m","l","a","z","h"]
lista.reverse()
print(lista)



#practicas


mi_lista = ["a","50",60.6,"pelota","b"]
print(mi_lista)


medios_transporte = ["avión", "auto", "barco", "bicicleta"]
medios_transporte.append("motocicleta")
print(medios_transporte)



frutas = ["manzana", "banana", "mango", "cereza", "sandía"]
eliminado = frutas.pop(2)
print(eliminado)




#diccionarios


#las claves no se pueden repetir, si los valores
diccionario = {"clave1":"valor1","clave2":"valor2","clave3":"valor3"}
print(diccionario)


#de esta forma podemos buscar un valos con su clave
diccionario = {"clave1":"valor1","clave2":"valor2","clave3":"valor3"}
resultado = diccionario["clave2"]
print(resultado)


#pueden contener varios tipos de datos, hasta listas dentro, o diccionarios dentro de el tambien
cliente = {"nombre":"juan","apellido":"gomez","edad":30,"nacionalidad":"argentino"}
consulta = (cliente["apellido"])
print(consulta)




#de esta forma al buscar por la clave, nos imprime la lista osea todo el valor que esta dentro de ella, salvo que le especifiquemos una posicion
cliente = {"nombre":"juan","apellido":"gomez","edad":30,"nacionalidad":{"arg":"argentino","br":"brasil","pr":"peru"}}
consulta = (cliente["nacionalidad"])
print(consulta)



#de esta forma podemos buscar por posicion dentro de un diccionario, cualquier elementos que este dentro de el sea una lista o otro diccionario
cliente = {"nombre":"juan","apellido":"gomez","edad":[30,40,50,60],"nacionalidad":{"arg":"argentino","br":"brasil","pr":"peru"}}
consulta = (cliente["edad"][1]),(cliente["nacionalidad"]["br"])
print(consulta)



#ejercicio lograr imprimir una letra e en mayuscula . la misma esta en unal lista dentro del diccionario
cliente = {"nombre":"juan","apellido":"gomez","edad":[30,40,50,60,"e"],"nacionalidad":{"arg":"argentino","br":"brasil","pr":"peru"}}
print(cliente["edad"][4].upper())



#para agregar elemento al diccionario
dic = {1:"a",2:"b"}
print(dic)



dic = {1:"a",2:"b"}
print(dic)
dic[3] = "c"
print(dic)
dic["nombre"] = "ruper"
print(dic)

#asi sobreescribimos y cambiamos un dato del diccionario
dic[2] = "B"
print(dic)


#nos trae todas las llaves que contiene el diciconario(sin sus valores)
print(dic.keys())



#nos trae todos los valores que contiene el diciconario(sin sus claves)
print(dic.values())


#nos imprime el contenido completo de un diccionario, con sus claves y sus valores
print(dic.items())




#practicas


mi_dic = {"nombre":"Karen","apellido":"Jurgens","edad": 35,"ocupacion":"Periodista"}
print(mi_dic)



mi_dict = {"valores_1":{"v1":3,"v2":6},"puntos":{"points1":9,"points2":[10,300,15]}}
print(mi_dict["puntos"]["points2"][1])




mi_dic = {"nombre":"Karen", "apellido":"Jurgens", "edad":35, "ocupacion":"Periodista"}
mi_dic["edad"] = 36
mi_dic["ocupacion"] = "Editora"
mi_dic["pais"] = "Colombia"
print(mi_dic)





#tupples son inmutables y van entre parentesis o sin tambien, casi iguales que la listas pero se procesann mas rapido y pesan menos


mi_tuple = (1,2,3,4,5,6,7)
print(mi_tuple[2])




mi_tuple = (1,2,3,4,5,6,7)
print(mi_tuple[-2])



#se lo selecciona para imprimir como en los diccionarios, marcando la ruta con [][] para ir indicando posiciones...
mi_tuple = (1,2,3,(10,30),5,6,7)
print(mi_tuple[3][0])




#a travez de un casting lo podemos transformar en lista
mi_tuple = (1,2,3,(10,30),5,6,7)
mi_tuple = list(mi_tuple)
print(type(mi_tuple))



#se le pueden asignar los valores de la primer variable, por separado respetando el orden y teniendo que tener la misma cantidad de elementos de valor para que se pueda
t = (1,2,3)
x,y,z = t
print(x,y,z)




#pedimos que nos de la cantidad de elementos que contiuenen la tupla
t = (1,2,3,1)
print(len(t))



#count te permite contar la cantidad de veces que esta el elemento que le especificamos dentro d tuplas
t = (1,2,3,1)
print(t.count(1))


#nos permite hacer que nos indique el indice de posicion del elemento que le especificamos dentro de la tupla
t = (1,2,3,1)
print(t.index(3))





#practicas


mi_tupla = (1, 2, 3, 2, 3, 1, 3, 2, 3, 3, 3, 1, 3, 2, 2, 1, 3, 2)
print(mi_tupla.count(2))



mi_tupla = (1, 2, 3, 2, 3, 1, 3, 2)
mi_lista = (list(mi_tupla))
print(type(mi_lista))



mi_tupla = (1, 2, 3, 4)
a,b,c,d = mi_tupla
print(a,b,c,d)




#los set puede ir entre parentesis y set primero, o bien entre llavesd sin la palabra set, no admite elemntos repetidos, y no esta ordenado por indices y son inmutables, (no admite listas ni diccionarios, pero si admite tuple)

mi_set = set([1,2,3,4,5,6])
print(type(mi_set))
print(mi_set)



otro_set = {1,2,3,4,5}
print(type(otro_set))
print(otro_set)


#aca vemos como no atmite repeticiones, y las elimina
mi_set = set([1,2,3,4,5,6,6,6,6,2,3,4,5])
print(type(mi_set))
print(mi_set)




#si acepta tuplas dentro de el, por que tambien es un elemnto inmutable.
mi_set = set([1,2,3,4,5,6,(6,6,6),2,3,4,5])
print(type(mi_set))
print(mi_set)



#nos muestra la cantidad de elementos dedntro
mi_set = set([1,2,3,4,5,6])
print(len(mi_set))


#tambien podemos consultar si un elemnto esta dentro de nuestro set dandonos respuesta true o false
mi_set = set([1,2,3,4,5,6])
print(2 in mi_set)



mi_set = set([1,2,3,4,5,6])
print(7 in mi_set)


#hacer union de set, y aca tambien vemos que como 3 se repite lo elimina

a1 = {1,2,3}
b2 = {3,4,5}
c3 = a1.union(b2)
print(c3)



#con add podemos agregar un elemento al set
s1 = {1,2,3}
s1.add(4)
print(s1)




#remove sirve para eliminar un elemento,(si le damos un elemento que no existe, nos da error)
s1 = {1,2,3}
s1.remove(3)
print(s1)



#discard nos permite descartar un elemento (no eliminar), por tanto si el mismo no esta, no nos devuelve error
s1 = {1,2,3}
s1.discard(6)
print(s1)



#pop nos elimina un elemento al asar si no se le especifica parametro (podria usarce para un sorteo)
s1 = {1,2,3}
s1.pop()
print(s1)



#clear sirve para borrar o limpiar todo el set, dejandonos sin nada
s1 = {1,2,3}
s1.clear()
print(s1)



#practicas


mi_set_1 = {1, 2, "tres", "cuatro"}
mi_set_2 = {"tres", 4, 5} 
mi_set_3 = mi_set_1.union(mi_set_2)
print(mi_set_3)



sorteo = {"Camila", "Margarita", "Axel", "Jorge", "Miguel", "Mónica"}
print(sorteo.pop())


sorteo = {"Camila", "Margarita", "Axel", "Jorge", "Miguel", "Mónica"}
sorteo.add("Damián")
print(sorteo)






#booleanos, le podemos definir en variable true o falso, (o al hacer una comparativa, o si se cumple o no una condicion o calculo lo resuelve solo si es true o false)muy usado en inteligencia artificial


var1 = True
var2 = False
print(type(var1))
print(var1)


#aca sin declarar flase ni true, lo resuelve solo, por si cumple la condicion que le dimos, al no cumplirse nos da false
numero = 5 > 2+3
print(type(numero))
print(numero)


# == comparacion de igualdad, por tanto enb seste ej. dara true (esto es igual a esto?)
numero = 5 == 2+3
print(type(numero))
print(numero)



# >= mayor o igual a tal valor, en este caso es igual asi que dara true
numero = 5 == 2+3
print(type(numero))
print(numero)



#. != nos permite decir que si ambos valores son diferentes, por ende nos dara false 
numero = 5 != 2+3
print(type(numero))
print(numero)



#esta es otra forma con la que se lo puede expresar, es igual (si no ponemos valor dentro del parentesis, nos dara falso)
numero = bool(5 != 2+3)
print(type(numero))
print(numero)


#aca decimo en una lista, que 5 esta en ella, por ende nos devuelve false
lista = [1,2,3,4]
control = 5 in lista
print(type(control))
print(control)



#aca decimos que 5 no esta en lista, por tanto nos devuelve true por que no lo esta
lista = [1,2,3,4]
control = 5 not in lista
print(type(control))
print(control)



#practicas 



prueba = 5 == 6
print(type(prueba))
print(prueba)


prueba = 17834/34 > 87*56
print(prueba)


prueba = 25*25 == 5
print(prueba)
```

Last updated