Autor: Luis Fernando Apáez Álvarez
-Curso PyM-
Práctica 4: Cadenas de texto
Fecha: 11 de Agosto del 2022
Solución:
Descripción: En esta práctica trabajaremos con lo aprendido sobre las cadenas de texto. Para ello trabajaremos con el texto que viene en el archivo txt: Archivo
(Tiempo estimado: 20 minutos)
Solución: Lo primero que haremos será descargar dicho archivo, en esta notebook, para poder trabajar con él. El siguiente código realizará dicha descarga:
import requests
url = 'https://cursopypagina.github.io/CursoPy/Primera_Meditacion.txt'
myfile = requests.get(url)
open('Primera_Meditacion.txt', 'wb').write(myfile.content)
12859
Después, una vez que el archivo 'Primera_Meditacion.txt'
ha sido descargado, procederemos a leer cada línea de dicho archivo, y el texto de dicha línea se irá concatenado en una variable string que denominaremos datos
:
# Cadena de texto vacia
datos = ""
# abrimos el archivo que descargamos
# y le damos un alias (archivo)
with open('/content/Primera_Meditacion.txt',"r") as archivo:
# iteramos sobre cada linea del archivo txt y agregamos dicho
# texto a la cadena vacia, para asi conseguir almacenar
# todo el contenido del archivo en la varible string datos
for linea in archivo:
datos += linea
# Imprimimos la variable string datos (solo lo primero)
print(datos[0:199])
Textos de Descartes. Meditaciones metafísicas Meditaciones metafísicas - Primera meditación De las cosas que se pueden poner en duda Hace ya algún tiempo que me di cuenta de que, desde mi infancia,
(1) Lo que haremos primero será contar cuántas palabras hay en dicho texto. Para conseguir lo anterior notemos primero que
# Cadena de 4 palabras
msj = "Hola Mundo, sean bienvenidos"
# Imprimimos el numero total de espacios en
# blanco en nuestra cadena
print(msj.count(" "))
3
Esto es, el número total de palabras es igual al número total de espacios en blanco más 1. Así:
# numero total de espacios en blanco
espacios_blanco = msj.count(" ")
print(f"Número total de palabras en la cadena msj: {espacios_blanco + 1}")
Número total de palabras en la cadena msj: 4
Con base en lo anterior, escribe un código que cuente el número total de palabras en el texto almacenado en la variable datos
:
# Aqui escribe tu codigo de acuerdo a lo que
# se dijo antes
# Contamos el numero de espacios en blanco
espacios_blanco = datos.count(" ")
print(f"Número total de palabras en el texto es de: {espacios_blanco + 1}")
Número total de palabras en el texto es: 2135
(2) De nuevo, contaremos el número total de palabras en el texto almacenado en la variable datos
, pero ahora utilizaremos el método split()
y la función len()
.
# escribe el codigo correspondiente:
# Utiliza la funcion split() y almacena la lista
# resultante en una variable
palabras_list = datos.split(" ")
# Imprime el numero total de elementos en la
# lista que obtuves anteriormente, utilizando
# para ello la funcion print()
print(len(palabras_list))
2135
(3) ¿Los números obtenidos por los distintos métodos fueron los mismos?
# Si los numeros obtenidos por los distintos metodos
# fueron iguales, imprime el booleano True.
# Si los numeros fueron distintos, imtpime False
print(True)
True
(4) Podemos contar cuántas veces apareció cierta palabra dentro de nuestro texto. Por ejemplo
# cadena de texto
# La cadena "texto" aparecera 3 veces
cad = "Repitamos texto, en este texto, para ver cuántas veces aparece \
la cadena texto"
# utilizamos de nuevo el metodo count()
print(cad.count("texto"))
3
¿Cuántas veces aparecé la palabra ciencias dentro del texto en la variable datos
?
# escribe el codigo necesario para responder la pregunta anterior
print(datos.count("ciencia"))
4
¿Cuántas veces aparecé la palabra Dios dentro del texto
en la variable datos
?
# escribe el codigo necesario para responder la pregunta anterior
print(datos.count("Dios"))
6
(5) Imprime la subcadena que va del índice 3097 al índice 3199, y almacena dicha cadena en la variable subcadena
:
# Completa
subcadena = datos[3097: 3200]
# Imprime
print(subcadena)
No obstante, tengo aquí que considerar que soy hombre y, en consecuencia, que tengo costumbre de dormir
Si lo hiciste de la manera correcta tendrá sentido la siguiente instrucción:
(6) Cambia la palabra "hombre
" a la palabra "mujer
" referente a la variable datos
, mediante el método replace()
. Almacena el texto resultante del cambio en la variable datos2
# completa
datos2 = datos.replace("hombre", "mujer")
(7) De manera similar al código obtenido de la instrucción (5). Imprime la subcadena del índice 3097 al índice 3199 referente ahora a la variable datos2
.
# Completa
subcadena2 = datos2[3097:3200]
# Imprime
print(subcadena2)
No obstante, tengo aquí que considerar que soy mujer y, en consecuencia, que tengo costumbre de dormir
¿Qué es lo que observas?
# Responde la pregunta anterior aqui:
# Se nota el cambio hecho de la palabra hombre a la palabra mujer