Está en la página 1de 33

Fundamentos de

programación

Unidad nueve:
Algoritmos con cadenas de
texto
AGE N D A

01  Objetivos de aprendizaje

02  Librería string: atributos y


funciones
03  Aplicaciones
Objetivos de aprendizaje

• Objetivo general:
Introducir los conceptos básicos en el manejo de strings

• Objetivos específicos
• Entender las funciones de una string.
• Conocer los atributos y tipos de manejo de una string.
• Observar casos de aplicación de los algoritmos con
strings como el análisis de sentimientos y la codificación
de textos

/ /F u n d a m e n t o s d e P r o g r a m a c i ó n
Fundamentos de
programación

Manejo de strings
01
Librería string

Manejo de strings
Una string se refiere a una cadena de caracteres, o texto, en un
lenguaje de programación.

Algunas operaciones:
• Remplazo de caracteres
• Búsqueda de texto
• Conteo de texto
• Corte y filtrado de texto
02
Librería string

Una string puede crearse con comillas simples o comillas


dobles:

‘Hola!’  ”Hola!”
01
Librería string
Un string tiene múltiples atributos a los que puede acceder donde
además puede ser tratado como una lista.

inicio
# crea una variable con el texto
texto = ’Soy el número 1000 y convertido en binario soy
1111101000’
# imprime un elemento de la string
mostrar(texto[4])
# imprime un grupo de elementos de la string
mostrar(texto[8:15])
fin
Resultado: e
úmero 1
02
Librería string

String y operaciones
Algunas operaciones con strings:

texto2 = 'teXto De prUEba’

texto2.capitalize() # convierte la letra inicial del texto a mayúsculas, y el


resto a minúsculas
texto2.count(str) # cuenta las ocurrencias de str en texto2
str in texto2 # indica si str existe dentro de texto2
texto2.find(str) # devuelve la posición de la primer ocurrencia de str
texto2.isdigit() # indica si el texto representa un número
02
Librería string

Join(nombre_string)
inicio
# crea una lista de strings
words = [‘yo’, ‘soy’, ‘tu’, ‘padre’]
# unir los elementos de la lista
mostrar(' '.join(words))
# unir los elementos de la lista con una palabra
mostrar(' jaja '.join(words))
fin

Resultado: yosoytupadre
yojajasoyjajatujajapadre
02
Librería string

inicio
# crea el texto
texto2 = 'teXto De prUEba’
# convierte texto2 a minúsculas
mostrar (texto2.lower())
# reemplaza en texto2 la string1 por la string2
mostrar(texto2.replace(‘teXto’, ‘Hola’))
fin

Resultado: texto de prueba


Hola De prUEba
02
Librería string

inicio
# crea el texto
texto2 = 'teXto De prUEba’
# convierte texto2 en una lista. Cada palabra es un elemento de la lista.
mostrar (texto2.split(“ ”))
# convierte texto2 en un título. Primera letra de cada palabra en
mayúscula
mostrar(texto2.title())
fin

Resultado: ['teXto', 'De', 'prUEba']


Texto De Prueba
Fundamentos de
programación

String y su librería
01
Librería string
La librería string viene por defecto en python y permite acceder a
atributos nuevos.

inicio
import string
# imprime los dígitos
mostrar(string.digits)
# imprime los signos de puntuación
mostrar(string.punctuation)
fin
Resultado: 0123456789
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~’
02
Librería string

Resultados de algunas operaciones con strings:

texto2 = 'teXto De prUEba’

texto2.capitalize() 'Texto de prueba’


texto2.count('e') 2 ¿por qué dos y no tres ‘e’ en el texto?
‘eX’ in texto2 True
texto2.find(‘Xt’) 2
texto2.isdigit() No
04
Ejemplos

Análisis de sentimientos

El análisis de sentimientos busca a partir de un conjunto de datos identificar qué


sentimiento expresa un texto.

Ejercicio:
Analizar si un párrafo expresa un sentimiento positivo o negativo respecto a algo,
tomando como referencia unas listas de palabras.
04
Ejemplos

Análisis de sentimientos
• ¿Cual es el objetivo?
• Indicar si un párrafo indica un sentimiento positivo o
negativo.
• ¿Cuáles son los datos de entrada?
• Una string que representa un escrito, carta, oración, etc.
• ¿Datos de salida?
• Una cadena de texto que indica qué tan positivo es el
sentimiento de la string de entrada

• Salidas: Muy bueno, Bueno, Normal, Malo, Muy malo


04
Ejemplos

Análisis de sentimientos

palabras_positivas = ['genial', 'bueno', 'agradable', 'super', 'divertido', 'mejorando', 'encanta']


palabras_negativas = ['horrible', 'maluco', 'desagradable’, 'malo', 'detesto']

Definir lista de palabras positivas y negativas


04
Ejemplos

Análisis de sentimientos

palabras_positivas = ['genial', 'bueno', 'agradable', 'super', 'divertido', 'mejorando', 'encanta']


palabras_negativas = ['horrible', 'maluco', 'desagradable’, 'malo', 'detesto‘, ‘terrible’]

oracion = ' Están construyendo un nuevo parqueadero en la universidad, me encanta eso de


que disminuya la congestión pero detesto todo aquello que no impulse el transporte publico,
claro... El transporte de la ciudad es terrible pero poco a poco vamos mejorando!'

Definir la oración (u obténgala algún medio de entrada)


04
Ejemplos

Análisis de sentimientos

inicio
import string
palabras_positivas = […]
palabras_negativas = […]
oracion = “…”
# Eliminar todos los signos de puntuación que pueden llegar a afectar la evaluación.
para p in list(string.punctuation):
oracion = oracion.replace(p, ‘ ’)
# Crear una lista con las palabras de la oración.
palabras = oracion.lower().split(' ')
04
Ejemplos

Análisis de sentimientos

(continuación…)

# Total palabras expresivas se encarga de contar todas las palabras (positivas y negativas).
total_palabras_expresivas = 0
# Contador de sentimiento calcula la diferencia entre palabras positivas y negativas.
contador_sentimiento = 0
# Se recorren las palabras y se procede a contar
para word in palabras:
si word in palabras_positivas:
contador_sentimiento += 1
total_palabras_expresivas += 1
si word in palabras_negativas:
contador_sentimiento -= 1
total_palabras_expresivas += 1
04
Ejemplos

Análisis de sentimientos
(continuación…)

# Note que resultado es un valor entre -1 y 1.


resultado = contador_sentimiento / total_palabras_expresivas
# El texto a mostrar solo nos da 4 opciones: Muy malo, Malo, Bueno y Muy bueno
si( resultado < -0.5 ):
mostrar( ‘Muy malo’ )
delocontrario( resultado < 0 ):
mostrar( ‘Malo’ )
delocontrario( resultado < 0.5):
mostrar(‘Bueno’)
delocontrario:
mostrar(‘Muy Bueno’)
fin
04
Ejemplos

Criptografía para dummies


Cree un programa que codifique un texto reemplazando cada letra por la letra
que se encuentra ubicada tres posiciones más adelante.

Es decir, que la letra ‘a’ debe ser reemplazada por la ‘d’, la ‘b’ por la ‘e’, y así
sucesivamente.
04
Ejemplos

Criptografía para dummies

• ¿Cual es el objetivo?
• Codificar una string cambiando las letras
• ¿Cuáles son los datos de entrada?
• Una string que representa un escrito, carta, oración, etc.
• ¿Datos de salida?
• Una string que representa al original, pero codificado.
04
Ejemplos

Criptografía para dummies


inicio
import string
# se genera una lista con las letras del abecedario
letras = list(string.ascii_lowercase)
# para evitar errores con x,y y z, se amplia la lista
letras += ['a', 'b', 'c']
# se obtiene el texto a codificar
texto = “Esta es una oración para codificar”.lower()
# se crea la variable para guardar el texto codificado
texto_codificado = “ ”
04
Ejemplos

Criptografía para dummies


(cont…)

# cambiar acentos y eñes por vocales sin acento y n


texto = texto.replace('á','a')
texto = texto.replace('é','e')
texto = texto.replace('í','i')
texto = texto.replace('ó','o')
texto = texto.replace('ú','u')
texto = texto.replace('ñ','n')
04
Ejemplos

Criptografía para dummies


# ciclo iterativo para convertir el texto original en un texto
codificado
for letra in texto:
if letra == ‘ ‘:
texto_codificado += ‘ ‘
else:
texto_codificado += letras[letras.index(letra) +3]
# imprime el texto codificado
print(texto_codificado)

¿Cuál es el resultado?
04
Ejemplos

Criptografía para dummies

Texto original
Esta es una oración para codificar

Texto codificado
hvwd hv xqd rudflrq sdud frglilfdu
04
Ejemplos

Criptografía para dummies

¿Cómo hace el destinatario para conocer el texto original?


04
Ejemplos

Criptografía para dummies


Descifrando el mensaje…
inicio
import string
# se genera una lista con las letras del abecedario
letras = list(string.ascii_lowercase)
# para evitar errores con a, b y c, se modifica el inicio de la lista
letras = ['x', 'y', 'z'] + letras
# se ingresa el texto a descodificar
texto_secreto = 'hvwd hv xqd rudflrq sdud frglilfdu'
# se crea la variable para guardar el texto original
texto_original = ""
04
Ejemplos

Criptografía para dummies


Descifrando el mensaje…
inicio
import string
# se genera una lista con las letras del abecedario
letras = list(string.ascii_lowercase)
#
letras = ['x', 'y', 'z'] + letras
# se ingresa el texto a descodificar
texto_secreto = 'hvwd hv xqd rudflrq sdud frglilfdu'
# se crea la variable para guardar el texto original
texto_original = ""
# ciclo iterativo para convertir el texto codificado en el texto
04
Ejemplos

Criptografía para dummies


¿Qué pasa si cambiamos el criterio de codificación a siete posiciones más
adelante?
04

Links de referencia
• Python-Strings:
https://docs.python.org/3.6/library/stdtypes.html#string-
methods
• Librería String: https://docs.python.org/3.6/library/string.html
• Problemas con Strings:
https://www.hackerrank.com/domains/algorithms/strings
Preguntas
Aportes
Comentarios
/ /F u n d a m e n t o s d e P r o g r a m a c i ó n

También podría gustarte