Está en la página 1de 6

Laboratorio de Python

Gerald Bismarck Aburto Sanchez


Esta página nos aclara que sus principales características son:
Abstract: This document is about 10 exercises that its
resolution is based on a programming language known as • Python puede ser fácil de aprender si eres programador
Python, this document details the use of different libraries for o si tienes experiencia con otros lenguajes programación.
each exercise, showing in detail how they work. • Friendly & fácil de aprender. La comunidad organiza
conferencias y reuniones, colabora en el código entre otras
actividades.
I. OBJETIVOS
• Aplicaciones. El Índice de paquetes de Python (PyPI)
alberga miles de módulos de terceros para Python. Tanto la
• Dar una introducción a lenguaje Python, entiendo su biblioteca estándar de Python como los módulos aportados por
teoría básica y a su vez familiazarse con las la comunidad permiten infinitas posibilidades.
características que nos brinda este tipo de lenguaje.
• Open Source. Python se desarrolla bajo una licencia de
• Entender la sintaxis, características y funcionamiento código abierto aprobada por OSI, por lo que se puede usar y
de las diferentes librerías que posee este lenguaje. distribuir libremente, incluso para uso comercial. La licencia de
Python es administrada por Python Software Foundation.
• Asimilar las diferentes técnicas para resolver los Esto hace preguntarnos ¿Para qué sirve?
problemas de la vida cotidiana con el uso de este
lenguaje. “Uno de los principales objetivos del uso de Python es
conseguir evitar complicaciones y ahorrar tiempo. Además, es
II. INTRODUCCION muy útil para trabajar con grandes volúmenes de datos, ya que
nos favorece los procesos de extracción y procesamiento de
La historia nos cuenta que este lenguaje de programación fue
estos.” [1],
creado en 1991 por Guindo Van Rossum (1956, Holanda). En
la mayoría de libros y documentos de internet nos aclaran que Según la página itelligent, algunos de los usos más comunes
Python es una opción interesante para realizar todo tipo de para los que sirve Python son:
programas que se ejecuten en cualquier máquina. Esto es
debido a que dicho lenguaje está orientado a objetos y • Realizar cálculos científicos y de ingeniería.
preparado para realizar cualquier tipo de programa. cabe aclarar • Desarrollo web.
que con este lenguaje podemos desarrollar software para app
científicas, para comunicaciones de red, para app de escritorio • Programación de videojuegos.
con interfaz gráfica de usuario (GUI), para crear videojuegos
para smartphones, para inteligencia artificial, para • Ejecutar programas gráficos.
automatización de tareas y por supuesto, para programación • Creación de efectos especiales.
web.
Esta página nos dice que las características y ventajas que
Gracias a esta práctica de labotario logre corroborar que ofrece Python son:
Python es muy sencillo de utilizar al mismo tiempo que guarda
toda su potencia, es un lenguaje de muy alto nivel que permite • Sistema multiplataforma. No fuerza a los
expresar algoritmos de forma casi directa. programadores a aprender un estilo especial, sino que permite
poder implementar varios estilos de programación enfocados a
Se sabe que este lenguaje es uno de los más utilizados dentro distintos aspectos. Entre dichos estilos podemos encontrar:
de ámbito de la programación, encargado de asegurarse de que programación imperativa, programación orientada a objetos y
la sintaxis haga posible que el código sea legible. Está programación funcional.
considerado un lenguaje multiparadigma, al poder ser enfocado
a varios estilos, y posee la ventaja de ser de código abierto, lo • Orientado a objetos. Una de las características de un
que permite que cualquiera pueda acceder a él. Desde que en lenguaje de programación orientado a objetos es la capacidad
1991 se publicó el código, según el sitio web llamado itelligent de permitir a un programador crear nuevas clases que modelen
“Python ha ido evolucionando sus características, las cuales los datos necesarios para resolver un problema. Con Python,
van siendo planteadas desde su filosofía de transparencia y nos encontramos ante un paradigma que propone modelar todo
legibilidad” [1]. en función a clases y a objetos. Esto nos ofrece un uso de
conceptos de cohesión, polimorfismo, abstracción y mucho menor que el superior, esta condición se le hace saber al usuario
más. a través de la pantalla, aquí se hace uso de un IF/ELSE para
hacer que está condición sea respetada ya que esto produciría
• Código abierto y libre. Posee una licencia de código un error dentro de la búsqueda, en caso de la condición sea
abierto denominada Python Software Foundation Licence. errónea se imprimirá en pantalla que hubo un error.
Toda la información relativa a este lenguaje de programación
es libre por lo que, como hemos mencionado anteriormente, En el caso de que sea verdadera se le pide al usuario que
cualquier persona puede acceder a él. ingrese un número, este es tomado como el tamaño de un
• Frameworks. Python cuenta con frameworks de gran vector, luego se hace uso de un ciclo for que tiene como limites
calibre para auxiliar el desarrollo web, el desarrollo de juegos o el intervalo ingresado por el usuario. El ciclo for funciona para
algoritmos avanzados. Son estructuras o espacios de trabajo en que tome valores aleatorios dentro del intervalo, para rellenar el
base a las cuales se pueden organizar y desarrollar los vector hasta llegar al número que el usuario digito que
softwares. Python posee algunos de los más poderosos (como corresponde al tamaño del vector.
son por ejemplo Django, Flask, Pyramid y Web2py),
destacando todos ellos por su gran utilidad, puesto que facilitan Luego esto se le hace saber al usuario dándole a conocer el
en gran medida trabajo de los desarrolladores. vector generado, una vez finalizado el programa, él está
diseñado para que a través de 3 ciclos for anidados, que tiene la
• Tipado dinámico. En Python, una misma variable función de hacer una búsqueda de todas las posibles
puede tomar valores de distinto tipo en distintos momentos y en combinaciones de los números dentro del vector, dichas
cualquier lugar de su código fuente. combinaciones posibles tienen que cumplir con la condición de
que la suma de tres números sea cero.
• Calidad en la sintaxis. Esta es una de las ventajas de
Python. Este lenguaje de programación nos ofrece una sintaxis Todas estas combinaciones posibles se presentan en pantalla,
clara y limpia que facilita su aprendizaje y enseñanza. Se y se le hace saber al usuario cuantas posibilidades existen, para
caracteriza por sustituir las delimitaciones y elementos de alto que el al usuario seleccione la respuesta que mejor le parezca,
nivel por sangrías y tokens, componentes lexicográficos en caso de no existir soluciones se imprime en pantalla que no
elementales que facilitan la escritura y lectura del código. se encontró ningún resultado.
También, otra de las funciones es la de reducir el uso de
caracteres y escribir un formato que testee una secuencia Ejercicio 2:
determinada.
Escriba un programa Python para imprimir un texto largo,
III. DESARROLLO convertir la cadena en una lista e imprimir todas las palabras
y sus frecuencias. Ver Figura 2.
El cogido fuente de los ejercicios será adjuntado al final en la
parte de anexos.

Ejercicio número 1:

Escriba un programa Python para encontrar trillizos únicos


cuyos tres elementos den la suma de cero de un conjunto de n
números enteros. Ver Figura 1.

Para este ejercicio se toma ciertas libertades para editar


algunas condiciones del ejercicio, ya que el código esta
diseñado para pedirle al usuario una oración, esto se almacena
en una variable, luego se le da la opción al usuario de escoger
si desea hacer el análisis o introducir una nueva oración, esto se
hace a través de dos números como son el uno y el dos, el uso
if/elif/else, hace que solo existan dos opciones, en el caso de
Para este ejercicio se diseño una manera ingeniosa para ocupe alguna opción diferente el else del código hará que en la
seleccionar los números y poder cumplir con el objetivo, en pantalla se imprima que digitó una opción incorrecta.
primera instancia se le pide al usuario ingresar dos números,
estos números son definidos como límite inferior y límite En el caso de digite la opción 2, se procederá a hacer el
superior, acá es de vital importancia que el límite inferior sea análisis, el cual de se ejecutara de igual forma en ambos casos,
el primer procedimiento es tomar la oración ingresada por el item. Todo este proceso es solo para obtener información, ya
usuario con la función .lower(), para transformar todas las letras que aún en pantalla no se muestra nada, nuestra siguiente tarea
a minúsculas, ya que Python toma las letras mayúsculas y es imprimirlo y hacerle saber al usuario sobre las noticias.
minúsculas como diferentes, esto será un problema a la hora de
hacer el análisis de repetición de palabras. El problema ahora es que se imprimirán muchas noticias,
para resolver esto, le hacemos saber al usuario cuantas noticias
El siguiente procedimiento es usar la función .split(), para recientes se encontraron, esto para que él pueda digitar cuantas
separar la oración a través de sus espacios, esto nos permite noticias desea ver en pantalla. En el código podemos ver como
obtener palabra por palabra de la oración, esto es almacenado existen 2 ciclos for, el primero es para almacenar en las listas
en un vector llamado listaPal que hace referencia a lista de llamadas título, link y fecha todo lo referente a lo obtenido con
palabras. Una vez que todo ha sido separado creamos un vector las etiquetas title, link, date respectivamente. El segundo for
llamado frecuencias, seguido un ciclo for para contar cuantas está dentro de un if/else, esto es porque si se encontraron 40
veces se repite el mismo termino, todo es agregado al vector noticias y el usuario digita 50, esto es incorrecto, así que esas
frecuencias. Ya al final se imprime la oración completa que el líneas de código están para que el número de noticias escogidas
usuario digito, mostrando con ello la lista de palaras ya sean menor al número de noticias encontradas. El segundo ciclo
separadas por el espacio, luego se imprime el vector frecuencias for es para que solo se impriman las primeras noticias en
que según el orden la lista de palabras imprime el número de función del número de noticias escogido por el usuario. Como
repetición de la misma, para finalizar la primera parte del if/elif, resultado obtenemos en pantalla la fecha de la noticia, título de
imprimirá la lista de palabra y a la par su frecuencia. la noticia y por último link de la noticia, por si se desea ampliar
su búsqueda.
En caso de tomar la primera opción, se le pide al usuario que
digite otra oración, dicha oración de juntará con la anterior y se Ejercicio 4:
procederá a realizar el mismo análisis de repetición detallado
anteriormente. Escriba un programa Python para obtener una lista de los
módulos Python instalados localmente. (Revise
Ejercicio 3: pkg_resources)

Escribe un programa Python para obtener las principales En este ejercicio tenemos una nueva librería llamada
historias de las noticias de Google. (Revise BeautifulSoup de pkg_resources, la cual está distribuida con setuptools que
bs4, urlib.request). proporciona una API para que las bibliotecas de Python accedan
a sus archivos de recursos, y para aplicaciones y marcos
este ejercicio era un poco más desafiante en comparación a extensibles para descubrir complementos automáticamente.
los anteriores, ya que se tenía que investigar sobre dos librerías También proporciona soporte en tiempo de ejecución para usar
como son: BeautifulSoup de bs4 y urlib.request), la primera extensiones C que están dentro de huevos en formato zipfile,
hace se trata de una librería Python para extraer datos desde soporte para fusionar paquetes que tienen módulos o
sitios HTML [2], el módulo urllib.requestes es usado subpaquetes distribuidos por separado y API para administrar
principalmente para buscar y abrir URLs. Una de sus funciones el "conjunto de trabajo" actual de paquetes activos de Python
principales es urllib.request.urlopen(). La función recibe una [3]. en el código podemos ver como llamamos a la librería para
URL, ya sea como cadena de texto o como un objeto Request y poder usar sus funciones integradas como .workin_set, la cual
su objeto de retorno depende del tipo de URL que se le pase nos entrega un valor de retorno en una secuencia de las
como argumento [2], en el código se tomó como referencia distribuciones que debían activarse para cumplir los requisitos;
estas dos librerías, en las primeras líneas de código podemos se incluyen todas las distribuciones relevantes [3].
ver como se mandan a llamar ambas librerías.
Aquí creamos una variable que se llama
En una variable llamada url_google_news almacenamos el installed_packages_list en la cual usamos la operación sorted
url a analizar, dentro de la url existen 3 etiquetas muy junto con un ciclo for para poder almacenar los paquetes en
importantes que son las que analizaremos, estas son: title, link, orden alfabético, seguido imprimimos en pantalla el número de
y date, para obtener lo que necesitamos usamos la variable info paquetes instalados.
para usar la función url.open(), que es la que contiene la
información sobre nuestra solicitud al url. Una vez terminado el Como podemos ver dentro del ciclo se hace referencia
proceso usamos la variable cont_xml para usar la función a dos elementos como son key y version, estos son las variables
.read() y extraer toda la información necesitada , como último que están dentro de la lista, una almacena el nombre del paquete
paso usamos la función .close() para cerrar el archivo. y la otra la versión, este ciclo es para poder ingresarlas a la lista
de forma ordenada, luego las imprimimos tomando el orden que
Luego de terminar este proceso tenemos como objetivo llevan y enumerándolas.
imprimir lo que obtuvimos, creamos una variable llamada
página para usar el beautifulSoup4 y manipular el contenido en
xml. Con el uso de la librería anterior podemos hacer una
búsqueda en forma de string con la función .findALL dentro de
la variable página, todo es almacenado en la etiqueta llamada
Ejercicio 5: Ejercicio 7:

Escriba un programa Python para mostrar información sobre el Escriba un programa Python para obtener todas las
sistema operativo en el que se está ejecutando el combinaciones posibles de letras de dos dígitos de una cadena
script. (Revise platform). de dígitos (1 a 9). Ver Figura 3.

En este código se hizo uso de un nuevo módulo


llamado platform el cual provee información a nivel software y
hardware; tal como arquitectura, procesador, datos del sistema
operativo, la distribución de Python (y sus implementaciones),
entre otras más específicas [4]. Como en todos los ejercicios
primero llamamos a la librería para usar sus funciones, como
podemos observar se hace una lista que lleva por nombre
perfil_sysop en ella se guarda todos los elementos que
necesitamos en forma de cadena.

Diseñamos un ciclo for para que recorra el número de


elemento de nuestra lista. Dentro podemos ver if que dentro
tiene la función hasattr la cual forma como argumentos un
objeto l nombre de un atributo y retorna True si el objeto
contiene dicho atributo de esta manera afirmamos o negamos el
if. Ahora solo queda imprimir los elementos en pantalla así que Para el diseño de este ejercicio se hizo uso del módulo
usamos la función getattr la cual, es una función incorporada itertools, el cual incluye un conjunto de funciones para trabajar
que permite obtener el valor de un atributo indicando su nombre con conjuntos de datos de secuencia. En este código se usó la
como una cadena. función producto el cual nos permite realizar todas las
multiplicaciones posibles dentro de un conjunto.
Ejercicio 6:
En este caso el arreglo de letras posee un numero de
Escriba un programa Python para comprobar que la suma de dirección, cada número de dirección le pertenecen tres letras. El
tres elementos (cada uno de una matriz) de tres matrices usuario tiene que digitar que números de dirección desea hacer
es igual a un valor objetivo. Imprima en pantalla todas esas todas las combinaciones
combinaciones de tres elementos.
Ejercicio 8:
Para este ejercicio nos enfocamos en la suma de
matrices de 1x3, así que en primera instancia podemos ver Para obtener los números estroboscópicos de n dígitos, como
como se le pide al usuario el valor de cada matriz, luego viene primer paso se debe generar una lista que contenga todos los
lo complicado ya que no tenemos una función para sumar una números desde 0 hasta n dígitos, por ejemplo 4 dígitos sería un
matiz elemento por elemento, así que tenemos que crear una. conteo desde 0 a 9999, cada número que se genera, se procede
a almacenar en una lista. sus valores primitivos tales como la
unidad, la decena, la centena, etc por separado todos ellos se
A esta función la llamaremos incluyen en la lista, para realizar esta descomposición se divide
sumar_matrices(m1,m2,m3), esta será la forma para mandarla entre 10 el número, de esto se obtiene su valor de unidad a
a llamar donde los elementos dentro del paréntesis son las través del resto, con esto se procede a dividir el número
matrices que van a sumarse. Primero hay que verificar que las resultante entre 10 y se vuelve a obtener un resto que seria la
matrices sean del mismo tamaño debido a eso es que vemos que unidad de las decenas, este proceso se repite n veces. ya
hay un if en el código quien es el encargado de verificar esta obtenido el número descompuesto, se observa que existen
información. Una vez confirmado que sean igual creamos una determinados números que al voltearlos 180° siguen siendo
nueva matriz llamada m4 que almacenara la suma de las ellos mismos tales como el 0,1 y 8 además
matrices en cuestión. Existen dos ciclos dentro de esta función de que existen números que son complemento de otro al
la primero de ellos agregara cada resultado del segundo ciclo momento de realizar el giro como el 9 y el 6, así que se compara
for dentro de la matriz m4, el segundo tiene por tarea sumar cada número obtenido de la descomposición, si es igual a 0,1 u
cada elemento de cada matriz respetando su orden dentro de la 8 se deja igual, si es igual a 9 se remplaza por un 6 y viceversa,
misma. Ya finalizado todo este procedimiento se imprime en si es otro número se remplaza por el numero 123 (al azar), de
pantalla las matrices esta forma se obtiene el número original “volteado” 180° el cual
que se sumaron junto con la matriz resultante. será fácilmente comparado con el numero original, si es
diferente No es un numero estroboscópico, si es el mismo
quiere decir que es un numero estroboscópico el cual será
impreso por consola.
Ejercicio 9:

Escriba un programa Python que acepte seis números como


entrada y los clasifique en orden descendente. El Usuario
debe escribir el número en consola, no pueden estar
preprogramados. Ver Figura 5

Entrada: La entrada consiste en seis números n1, n2, n3, n4, n5,
n6 (-100000 ≤ n1, n2, n3, n4, n5, n6 ≤ 100000). Los seis
números están separados por un espacio.

para lograr una búsqueda de la cantidad de islas que se


pueden ver en la figura de la matriz dada, puede ser a través de
un contador, el cual lleve el conteo de dos índices que se
recorren en las filas y columnas digito a digito, si el digito es
diferente a cero quiere decir que es “tierra”, en la cual se
observaran sus límites, si limita con alguna otra casilla de tierra
que sea igual a uno, se enumera la casilla actual con un número
mayor al valor especificado en el contador, en cambio sí existe
una casilla que limite donde su número sea diferente de
uno, se adopta el número de dicha casilla, como los valores de
cada isla son remplazados por el numero asignado a dicha isla,
cuanto se terminan de recorrer los valores de la matriz se
procede a imprimir el número de isla final menos 1, debido a
que el contador de islas empieza en dos.

IV. CONCLUSIONES
Para este ejercicio se usa la función sorted con un
Por mi parte concluyo que esta práctica de laboratorio
reverse para que se ordenara de mayor a menor, así que solo se
ayudo mucho a conocer de mejor manera las herramientas
le pide los 6 dígitos al usuario y la función los ordenas de mayor
que nos brinda Python. Quedó totalmente demostrado que el
a menor y luego solo se imprimen en pantalla.
arte de la programación no solo es de conocer las
herramientas sino el tener astucia para poder resolver los
Ejercicio 10:
ejercicios ya que algunos ejercicios presentaron un gran reto
para nuestros básicos conocimientos sobre este lenguaje, lo
Hay 10 cuadrados verticales y horizontales en un plano. Cada
cual nos obligó a buscar más información para poder
cuadrado está pintado de azul y verde. El azul
completar la tarea, complementando así nuestros
representa el mar y el verde la tierra. Cuando dos cuadrados
conocimientos y ayudando a nuestro desarrollo académico en
verdes están en contacto con la parte superior e inferior,
este tema.
o la derecha y la izquierda, se dice que son la tierra. El área
creada por un solo cuadrado verde se llama "isla". Por
Con esto nos queda claro que existen diversas formas de
ejemplo, hay cinco islas en la figura de abajo. Escriba un
realizar una tarea, pero lo importante es dar una solución
programa Python para leer los datos de masa y encontrar el
óptima, ya que como ingenieros es nuestro deber con la
número de islas. Ver Figura 6.
sociedad.

V. REFERENCIAS
1. ITELLIGENT, (2018). Python: el lenguaje de
programación más usado por grandes compañías
como Google, Facebook o Netflix, recuperado
de https://www.itelligent.es/es/que-es-python/.
2. Monty Shokeen, (2017), Raspando Páginas Web
en Python Con Beautiful Soup, recuperado de
https://code.tutsplus.com/es/tutorials/scraping-
webpages-in-python-with-beautiful-soup-the-
basics--cms-28211.
3. Ernesto Rico Schmidt, (2019), itertools —
Funciones de iterador recuperado de https://rico-
schmidt.name/pymotw-3/itertools/index.html#.
4. El módulo platform – Información del sistema y
ordenador, (2014), recupérado de
https://recursospython.com/guias-y-
manuales/platform-sistema-y-ordenador/.

También podría gustarte