0% encontró este documento útil (0 votos)
122 vistas

Unidad 2 - Programación Estructurada Con Python

Este documento presenta una introducción a la programación estructurada en Python. Explica conceptos clave como funciones, sentencias condicionales if, else y elif, bucles for y while, arreglos y archivos. La unidad 2 cubre estos temas con más detalle a través de ejemplos y ejercicios prácticos sobre el cálculo de áreas, validación de usuario, determinación de números pares e impares, y adivinanzas con condicionales anidadas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
122 vistas

Unidad 2 - Programación Estructurada Con Python

Este documento presenta una introducción a la programación estructurada en Python. Explica conceptos clave como funciones, sentencias condicionales if, else y elif, bucles for y while, arreglos y archivos. La unidad 2 cubre estos temas con más detalle a través de ejemplos y ejercicios prácticos sobre el cálculo de áreas, validación de usuario, determinación de números pares e impares, y adivinanzas con condicionales anidadas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 28

UNIVERSIDAD CUAUHTÉMOC

PLANTEL AGUASCALIENTES
EDUCACIÓN A DISTANCIA



Materia
Programación en Python

Docente
Dr. Iván Castillo Zúñiga.
[email protected]






“EXCELENTES PROFESIONISTAS, MEJORES SERES HUMANOS”
Introducción.
La programación estructurada es un paradigma de programación basado en utilizar funciones o
subrutinas, y únicamente tres estructuras de control:

• Secuencia: ejecución de una sentencia tras otra.


• Selección o condicional: ejecución de una sentencia o conjunto de sentencias, según el valor
de una variable booleana.
• Iteración (ciclo o bucle): ejecución de una sentencia o conjunto de sentencias, mientras una
variable booleana sea verdadera.

Este paradigma se fundamenta en el teorema correspondiente, que establece que toda función
computable puede ser implementada en un lenguaje de programación que combine sólo estas tres
estructuras lógicas o de control.

La estructura de secuencia es la que se da naturalmente en el lenguaje, ya que por defecto las


sentencias son ejecutadas en el orden en que aparecen escritas en el programa.

Para las estructuras condicionales o de selección, Python dispone de la sentencia if, que puede
combinarse con sentencias elif y/o else.

Para los bucles o iteraciones existen las estructuras while y for.

Otra estructura interesante son el manejo de arreglos, los cuales son equivalentes a matrices y vectores
de las matemáticas. Una gran motivación para usar los arreglos, es que existe mucha teoría detrás de
ellos que puede ser usada en el desarrollo de algoritmos para resolver problemas verdaderamente
interesantes. En Python el modulo para trabajar con arreglos se llama Numpy, y no viene incluido en
Python, por lo que hay que instalarlo por separado.

Finalmente estudiaremos los archivos, los cuales son usados para almacenar información en forma de
texto. Para manipular los archivos de texto, se establecen procesos de abrir, cerrar, leer desde y
escribir en archivos con extensión “.txt.”

Dr. Iván Castillo Zúñiga 1


Programación en Python.
Unidad II.
Programación estructurada con Python.
2.1 Funciones.
2.2 Sentencias if, else y elif.
2.3 Bucles.
2.3.1 Ciclos for.
2.3.2 Ciclos while.
2.4 Arreglos.
2.5 Archivos.
2.5.1 Archivos de texto.
2.5.2 Descarga, clonación y lectura de archivos de Internet.

2.1 Funciones.

Una función es un bloque de código con un nombre asociado, que recibe cero o más
argumentos como entrada, sigue una secuencia de sentencias, la cuales ejecuta una operación
deseada y devuelve un valor y/o realiza una tarea, este bloque puede ser llamados cuando se
necesite.

El uso de funciones es un componente muy importante del paradigma de la programación


llamada estructurada, y tiene varias ventajas:

• modularización: permite segmentar un programa complejo en una serie de partes o


módulos más simples, facilitando así la programación y el depurado.
• reutilización: permite reutilizar una misma función en distintos programas.

Python dispone de una serie de funciones integradas al lenguaje, y también permite crear
funciones definidas por el usuario para ser usadas en su propios programas.

Sentencia def.

La sentencia def es una definición de función usada para crear objetos funciones definidas
por el usuario. Una definición de función es una sentencia ejecutable. Su ejecución enlaza el
nombre de la función en el namespace local actual a un objecto función (un envoltorio
alrededor del código ejecutable para la función). Este objeto función contiene una referencia
al namespace local global como el namespace global para ser usado cuando la función es
llamada.
La definición de función no ejecuta el cuerpo de la función; esto es ejecutado solamente
cuando la función es llamada. La sintaxis para una definición de función en Python es:

Función simple. Función con paso de parametros.


def nombre_de_función(): def nombre_de_función(parametro1, parametro2):
algoritmo algoritmo
return resultado return resultado

Dr. Iván Castillo Zúñiga 2


Programación en Python.
Ejemplo 1: Hacer un programa usando funciones simples para mostrar un mensaje “hola
mundo”, como se muestra en la Fig. 1.

Figura 1. Programa usando funciones simples.

Ejemplo 2: Hacer un programa usando funciones con paso de parametros para llevar a acabo
operaciones basicas: sumas, restas, multiplicaciones, divisiones, sobre dos numeros, lo cuales
serán solicitados al usuario. El programa resuelto se muestra en la Fig. 2

Figura 2. Programa usando funciones con paso de parametros.

Ejercicios del objetivo 2.1 Funciones.

Los ejercicios serán desarrollados usando paso de parámetros.

1. Crear un programa con funciones para calcular el área de un triángulo, rectángulo,


círculo, cubo y rombo.
2. Agregar dos ejemplos más a elección del alumno (puede apoyarse del libro de Marzal,
García & Gracia (2016), ubicado en la plataforma eLibro de la UCA.

Dr. Iván Castillo Zúñiga 3


Programación en Python.
2.2 Sentencias if, else y elif.

Sentencia if

La sentencia condicional if se usa para tomar decisiones, este evaluá básicamente una
operación lógica, es decir una expresión que de como resultado True o False, y ejecuta la
pieza de código siguiente siempre y cuando el resultado sea verdadero.

Sintaxis de la sentencia condicional.


If condición:
Se escribe el código que corresponde si la condición es cierta y puede ser en varias líneas.

Ejemplo 1: Escriba un programa para verificar que la calificación de un alumno sea


aprobatoria, para ello el número que se ingrese deberá ser mayor a un 7. La solución se
muestra en la Fig. 3.

Figura 3. Programa usando el condicional if.

Sentencia if else (bifurcaciones)

La estructura de control if ... else ... permite que un programa ejecute unas instrucciones
cuando se cumple una condición y otras instrucciones cuando no se cumple esa condición.
En inglés "if" significa "si" (condición) y "else" significa "si no". La orden en Python se escribe
así:

Sintaxis de la sentencia condicional if else.


If condición:
Se escribe el código si la condición es cierta y puede ser en varias líneas.
else:
Se escriben el código si la condición es falsa y pueden ser en varias líneas.

Ejemplo 2: Escriba un programa para verificar si una persona es mayor de edad, la condición
para que sea mayor de edad, es que la persona tenga 18 años o más, en caso contrario la
persona es menor de edad. La solución se muestra en la Fig. 4.

Dr. Iván Castillo Zúñiga 4


Programación en Python.
Figura 4. Programa usando el condicional if else.

Ejemplo 3: Escriba un programa para verificar el usuario y contraseña de una persona. El


usuario deberá ser validado como “admin” y la contraseña como “nazgull”. La solución se
muestra en la Fig. 5.

Figura 5. Programa usando para validar usuario y contraseña (if-else).

Ejemplo 4: Escriba un programa para verificar si un número es par o impar. La solución se


muestra en la Fig. 6.

Figura 6. Programa para verificar si un número es par o impar (if-else).

Dr. Iván Castillo Zúñiga 5


Programación en Python.
Sentencias condicionales anidadas

Una sentencia condicional puede contener a su vez otra sentencia anidada y se pueden anidar
tantas sentencias condicionales como se desee.

Ejemplo 5: Escriba un programa de adivinanzas, en donde el programa debe adivinar el


número pensado por el usuario. La solución se muestra en la Fig. 7.

Figura 7. Programa adivina un número usando sentencias anidadas (if-else).

Sentencia elif.

La sentencia elif, puede utilizarse cuando existen más de dos alternativas: if ... elif ... else ...

La construcción if ... else ... se puede extender añadiendo la instrucción elif:


La estructura de control if ... elif ... else ... permite encadenar varias condiciones. elif es una
contracción de else if.

La sintaxis en Python se escribe así:

if condición_1: • Si se cumple la condición 1, se ejecuta el bloque 1


bloque 1 • Si no se cumple la condición 1 pero sí que se cumple
elif condición_2: la condición 2, se ejecuta el bloque 2
bloque 2 • Si no se cumplen ni la condición 1 ni la condición 2,
else: se ejecuta el bloque 3.
bloque 3.

Dr. Iván Castillo Zúñiga 6


Programación en Python.
Esta estructura es equivalente a la siguiente estructura de if ... else ... anidados:

if condición_1:
bloque 1
else:
if condición_2:
bloque 2
else:
bloque 3.

Ejemplo 6: Escriba un programa para verificar si una persona es mayor de edad, la condición
para que sea mayor de edad, es que la persona tenga 18 años o más, en caso de que la persona
tenga entre 0 y 17 años, la persona es menor de edad, en caso distinto la persona no ha
nacido. La solución se muestra en la Fig. 8.

Figura 8. Programa usando sentencia elif para determinar si una persona no ha nacido,
es menor de edad o mayor (if-else).

Ejercicios del objetivo 2.2 Sentencias if, elif y else.

Los ejercicios serán desarrollados usando funciones con paso de parámetros.


1. Hacer un programa, que calcule el salario de los trabajadores de una empresa, el cual consiste
en lo siguiente: Por las primeras 40 horas trabajadas recibe un salario normal. Por las
siguientes 5 horas el doble y por las restantes el triple. El programa debe pedir el número de
horas trabajadas y el salario por hora de trabajo.
2. Diseña un programa que, dados dos números, muestre por pantalla uno de estos mensajes:
«El segundo es el cuadrado del primero.», «E1 segundo es menor que el cuadrado del
primero.» o bien «El segundo es mayor que el cuadrado del primero.», dependiendo de la
verificación de la condición correspondiente al significado de cada mensaje.
3. Realiza un programa que calcule el desglose mínimo en billetes y monedas de una cantidad
exacta de euros Hay billetes de 500, 200, 400, 50, 20, 40 g 5 € y monedas de 2 y l € Por
ejemplo, si deseamos conocer el desglose de 434 €, el programa mostrará por pantalla el
siguiente resultado:
2 billetes de 200 euros.
1 billete de 20 euros.
1 billete de 10 euros.
2 monedas de 2 euros.

Dr. Iván Castillo Zúñiga 7


Programación en Python.
2.3 Bucles.
En general, un bucle es una estructura de control que repite un bloque de instrucciones, en
Python existen dos tipos de bucles: for y while, los cuales se detallan a continuación.

2.3.1 Ciclos for.


El ciclo for en el lenguaje Python tiene cierta ventaja y diferencia con otros lenguajes. Si tienes
nociones de programación en lenguajes diferentes a python, tal vez puedas pensar que el ciclo
For se define utilizando contadores y rangos en los cuales se ejecutaría el código del for, sin
embargo en Python el concepto es un poco diferente.
Sintaxis de la sentencia for

for iterador in secuencia


#codigo a ejecutar

Esto quiere decir que cuando usamos la sentencia For, tenemos la capacidad de recorrer una
secuencia por medio de “iteraciones”, una secuencia como una lista o una simple cadena de
texto, veamos un ejemplo para comprender mejor.
Si quisiéramos declarar una cadena de texto y recorrer cada uno de sus caracteres, podemos
usar la sentencia For para ello.
Ejemplo 1: Hacer un programa que recorra una palabra, letra por letra, y la muestre en
pantalla. El resultado se muestra en la Fig. 9.

Figura 9. Programa con ciclos for para recorrer una palabra.

Ejemplo 2: Hacer un programa que muestre los números del 1 al 10 usando ciclos For. El
resultado se muestra en la Fig. 10.

Figura 10. Programa con ciclos for para generar 10 números.

Dr. Iván Castillo Zúñiga 8


Programación en Python.
Ejemplo 3: Hacer un programa que muestre 10 números aleatorios con ciclos For. El
resultado se muestra en la Fig. 11.

Figura 11. Programa para generar 10 números aleatorios con ciclos for.

Ejemplo 4: Hacer un programa que calcule el factorial de un número con ciclos For. El
resultado se muestra en la Fig. 12.

Figura 12. Programa para calcular el factorial de un número con ciclos for.

Ejemplo 5: Hacer un programa que muestre la tabla de multiplicar de un número específico


con ciclos For. El resultado se muestra en la Fig. 13.

Figura 13. Programa para calcular la tabla de multiplicar de un número específico.

Dr. Iván Castillo Zúñiga 9


Programación en Python.
2.3.2 Ciclos while.
Un bucle while permite repetir la ejecución de un grupo de instrucciones mientras se cumpla
una condición (es decir, mientras la condición tenga el valor True).

Sintaxis de la sentencia while

while condición:
#cuerpo del bucle

La ejecución de esta estructura de control while es la siguiente:


• Python evalúa la condición:
o Si el resultado es True se ejecuta el cuerpo del bucle. Una vez ejecutado el
cuerpo del bucle, se repite el proceso (se evalúa de nuevo la condición y, si es
cierta, se ejecuta de nuevo el cuerpo del bucle) una y otra vez mientras la
condición sea cierta.
o Si el resultado es False, el cuerpo del bucle no se
ejecuta y continúa la ejecución del resto del
programa.

La variable o las variables que aparezcan en la condición se suelen


llamar variables de control. Las variables de control deben definirse
antes del bucle while y modificarse en el bucle while. El diagrama
de flujo se muestra en la Fig. 14.

Figura 14. Diagrama de flujo del ciclo while.

Ejemplo 1: Solicitar un número positivo al usuario una y otra vez hasta que el usuario lo haga
correctamente, tal y como se muestra en la Fig. 15.

Figura 15. Programa para forzar el ingreso de un número positivo con ciclo while.

Dr. Iván Castillo Zúñiga 10


Programación en Python.
Ejemplo 2: Escriba un programa que pida números pares mientras el usuario indique que
quiere seguir introduciendo números. Para indicar que quiere seguir escribiendo números, el
usuario deberá contestar S o s a la pregunta, la solución se muestra en la Fig. 16.

Figura 16. Programa para ingresar números mientras el usuario desee.

Ejemplo 3: Escriba un programa que genere una serie de números, la cual inicia con un
número aleatorio, posteriormente si el número es par se debe dividir entre 2, en caso
contrario se debe multiplicar por 3 y sumarle 1, la serie concluye cuando el númro sea igual
a 1. La solución se muestra en la Fig. 17.

Figura 17. Programa para generar serie de números.

Dr. Iván Castillo Zúñiga 11


Programación en Python.
Ejemplo 4: En matemáticas, la sucesión o serie de Fibonacci hace referencia a la secuencia
ordenada de números descrita por Leonardo de Pisa, matemático italiano del siglo XIII: 0,
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,… A cada uno de los elementos de la serie se le conoce
con el nombre de número de Fibonacci. La solución se muestra en la Fig. 18.

Figura 18. Programa para generar la serie de Fibonacci.

Ejemplo 5: Escribe un programa que reciba nombres de personas, y concluya cuando el


usuario ya no escriba ningún nombre, y sólo de enter. La solución se muestra en la Fig. 19.

Figura 19. Programa para capturar nombres, finaliza con enter.

Dr. Iván Castillo Zúñiga 12


Programación en Python.
Ejercicios del objetivo 2.3 Bucles (for y while).

Los ejercicios serán desarrollados usando paso de parámetros.

1. Generar 100 números de 4 en 4 a partir del 3.


2. Mostrar 20 números en descendencia y posteriormente en ascendencia.
3. Hacer un programa para mostrar los primeros 50 números primos.
4. Hacer un programa que solicite al usuario 5 números y los muestre ordenados.

Dr. Iván Castillo Zúñiga 13


Programación en Python.
2.4 Arreglos.
Las estructuras de datos como las permiten manipular datos de manera muy flexible.
Combinándolas y anidándolas, es posible organizar información de manera estructurada
para representar sistemas del mundo real.

En muchas aplicaciones de Ingeniería, por otra parte, más importante que la organización
de los datos es la capacidad de hacer muchas operaciones a la vez sobre grandes conjuntos
de datos numéricos de manera eficiente. Algunos ejemplos de problemas que requieren
manipular grandes secuencias de números son: la predicción del clima, la construcción de
edificios, y el análisis de indicadores financieros entre muchos otros.

La estructura de datos que sirve para almacenar estas grandes secuencias de números
(generalmente de tipo float) es el arreglo.

Los arreglos tienen algunas similitudes con las listas:

• Los elementos tienen un orden y se pueden acceder mediante su posición,


• Los elementos se pueden recorrer usando un ciclo for.

Sin embargo, también tienen algunas restricciones:

• Todos los elementos del arreglo deben tener el mismo tipo,


• En general, el tamaño del arreglo es fijo (no van creciendo dinámicamente como las
listas),
• Se ocupan principalmente para almacenar datos numéricos.

A la vez, los arreglos tienen muchas ventajas por sobre las listas, que iremos descubriendo a
medida que avancemos en el tema.

Los arreglos son los equivalentes en programación de las matrices y vectores de las
matemáticas. Precisamente, una gran motivación para usar arreglos es que hay mucha teoría
detrás de ellos que puede ser usada en el diseño de algoritmos para resolver problemas
verdaderamente interesantes.

NumPy.

El módulo que provee las estructuras de datos y las funciones para trabajar con arreglos se
llama NumPy, y no viene incluído con Python, por lo que hay que instalarlo por separado.

NumPy es, al igual que Pandas, Matplotlib o Scikit-Learn, uno de los paquetes que no puedes
perderte cuando estás aprendiendo Machine Learning, principalmente porque esta librería
proporciona una estructura de datos de matriz que tiene algunos beneficios sobre las listas
regulares de Python. Algunos de estos beneficios son: ser más compacto, acceder más rápido
a leer y escribir artículos, ser más conveniente y más eficiente.

Dr. Iván Castillo Zúñiga 14


Programación en Python.
NumPy es un paquete de Python que significa “Numerical Python”, es la librería principal
para la informática científica, proporciona potentes estructuras de datos, implementando
matrices y matrices multidimensionales. Estas estructuras de datos garantizan cálculos
eficientes con matrices.
A continuación se muestra el código para crear una matriz unidimensional y una matriz
bidimensional, y la ejecución en Python en la Fig. 20.
Matriz unidimensional.
import numpy as np
arreglo_uni=np.array([1,2,3])
print (arrelo_uni)

Matriz bidimensional.
import numpy as np
arreglo_bi=np.array([(1,2,3),(4,5,6)])
print (arrelo_bi)

Figura 20. Programa con un arreglo unidimensional y bidimensional.


Numpy vs listas
Una pregunta que puede surgir, ¿Porque usar NumPy en vez de utilizar las listas propias que
ofrece Python para manejar estos datos?, la primera razón es que NumPy ocupa menos
memoria en comparación a las listas de Python, a su vez es bastante rápido en términos de
ejecución.
Numpy ocupa menos memoria que las listas
En la Fig. 21, se muestra un programa para mostrar el espacio en memoria de un arreglo de
igual tamaño que una lista.

Figura 21. Programa para calcular espacio en memoria (lista y arreglo).

Dr. Iván Castillo Zúñiga 15


Programación en Python.
Este resultado muestra que la memoria asignada para la matriz (lista) creada por Python es
de 28000, mientras que la memoria asignada por la matriz NumPy es de sólo 8000, con esto
podemos concluir que hay una gran diferencia entre los dos y esto hace que las matrices
creadas con NumPy sea la opción preferida.

Numpy es más rapido que las listas


En la Fig. 22, se muestra un programa para mostrar la velocidad de procesamiento usando
listas de Python, y usando arreglos de NumPy. Para ello se crean cuatro arreglos, dos para
las listas y dos para arreglos con NumPy, todos del mismo tamaño, posteriormente se tomará
el tiempo que se tardan los procesos en sumar los dos vectores asignados a cada objeto, y se
compararán los resultados.

Figura 22. Programa para calcular tiempo de procesamiento (listas y arreglo).

En este código se han definido dos listas en Python y dos matrices esta vez utilizando NumPy,
posteriormente hemos comparado el tiempo tomado para encontrar la suma de los
elementos. Si observas los resultados, hay una diferencia significativa entre los dos, en el
primero obtuvimos 207 ms mientras que la operación realizada con NumPy solamente tomo
51 ms en ser ejecutada. Por lo tanto, las matriz creadas con NumPy son más rápida que la
listas creadas directamente por Python.

Otro detalle que tienes que ver acá es que para hacer esta operación para el primer caso
tuvimos que utilizar “for”, mientras que para el segundo caso simplemente sumamos las dos
matrices sin mucho esfuerzo.

Como puedes observar con estos ejemplos prácticos, trabajar con NumPy es mucho más fácil
y conveniente en comparación con las listas propias de Python, es por esta razón que es
utilizado bastante en el desarrollo de los algoritmos de Machine Learning.

Dr. Iván Castillo Zúñiga 16


Programación en Python.
Ejemplos con arreglos tipo listas

Ejemplo 1: Hacer un programa para generar 20 números aleatorios, introducirlos en un


arreglo, y posteriormente mostrarlos en pantalla. La solución se muestra en la Fig. 23.

Figura 23. Programa para generar un arreglo con 20 números al azar entre 1 y 100.

Ejemplo 2: Hacer un programa para generar 10 números aleatorios, introducirlos en un


arreglo, mostrarlos en pantalla, oredenarlos y mostrarlos ordenados en pantalla. La solución
se muestra en la Fig. 24.

Figura 24. Programa para generar un arreglo y ordenarlo.

Dr. Iván Castillo Zúñiga 17


Programación en Python.
Ejemplo 3: Hacer un programa para generar 50 números aleatorios, introducirlos en un
arreglo, mostrarlos en pantalla de 10 en 10, ordenarlos y mostrarlos ordenados en pantalla
de 10 en 10. La solución se muestra en la Fig. 25.

Figura 25. Programa para generar un arreglo, ordenarlo y mostralo en columnas.

Dr. Iván Castillo Zúñiga 18


Programación en Python.
Ejemplos con arreglos usando Numpy

Ejemplo 4: Hacer un programa para generar 100 números aleatorios, introducirlos en un


arreglo, mostrarlos en pantalla, ordenarlos y mostrarlos en pantalla, además mostrar el
estadístico del arreglo. La solución se muestra en la Fig. 26.

Figura 26. Programa para generar un arreglo,


ordenarlo y mostralo el estadístico usando Numpy.

Dr. Iván Castillo Zúñiga 19


Programación en Python.
Operaciones numéricas con arreglos Numpy

Ejemplo 5: Construir un programa en donde se genere un arreglo, se realicen operaciones


de suma, media, desviación estándar, mediana, máximo y mínimo. La solución se muestra
en la Fig. 27.

Figura 27. Programa con operaciones numéricas con arreglos.

Dr. Iván Castillo Zúñiga 20


Programación en Python.
Arreglos bidimensionales

Ejemplo 6: Construir un programa en donde se genere un arreglo bidimensional, se realicen


operaciones de suma, media, desviación estándar, mediana, máximo, mínimo, se exporte a
un archivo con formato .csv y finalmente se vuelva a importar el archivo .csv a un arreglo y
se mueste en pantalla. La solución se muestra en la Fig. 28.

Figura 28. Programa con arreglos bidimensionales.

Dr. Iván Castillo Zúñiga 21


Programación en Python.
Ejercicios del objetivo 2.4 Arreglos (lista y con librería numpy).

Desarrollo de la práctica.

1. Replicar el ejemplo 6 (pág. 21), pero con arreglos multidimensionales.


2. Agregar al ejemplo 5 (pág. 20) y ejemplo 6 (pág. 21), el ordenamiento de los
arreglos, mostrarlos en pantalla y exportarlos ordenados a formato csv.
3. Incluir un ejemplo con arreglos (unidimensional, bidimensional y
multidimensional) usando graficación con librería matplotlib (investigar en
internet ejemplos).

Dr. Iván Castillo Zúñiga 22


Programación en Python.
2.5 Archivos.
El concepto popular de “archivo” es un poco diferente en Python.

En Windows, por ejemplo, un archivo puede ser un elemento manipulado, editado o creado
por el usuario o sistema operativo. Esto quiere decir que los archivos pueden ser imágenes,
documentos de texto, archivos ejecutables y mucho más. La mayoría de los archivos están
organizados en carpetas individuales.

Los archivos en Python están categorizados en archivos de texto o archivos binarios, la


diferencia entre estos dos tipos de archivos es de vital importancia al momento de
manipularlos.

Los archivos de texto están formados por una secuencia de líneas, donde cada línea incluye
una secuencia de carácteres. Esto es lo que se conoce como código o sintaxis. Cada línea
finaliza con un carácter especial, llamado EOL (End of Line) o carácter de fin de línea. Hay
varios tipos de carácteres de fin de línea, pero los más comunes son la coma (,) o el carácter
de salto de línea (\n).

Un archivo binario es cualquier tipo de archivo que no es un archivo de texto. A causa de su


naturaleza, los archivos binarios sólo pueden ser procesados por una aplicación que conozca
o entienda la estructura del mismo. En otras palabras, deben ser aplicaciones que puedan
leer e interpretar binario.

En los siguientes objetivos nos enfocaremos a los archivos de texto, de manera general y de
forma específica los archivos del Internet HTML.

2.5.1 Archivos de texto.

A continuación analizaremos a manipular archivos de texto utilizando Python. Esto incluye


abrir, cerrar, leer desde y escribir en archivos .txt

Procedimiento para trabajar con archivos:

1. Se abre el archivo.
2. Se lee o se escribe en el archivo.
3. Se cierra el archivo.

1- Abrir un Archivo:

Para abrir un archivo, utilizamos open. Debes indicar su dirección y además debes
indicar para que lo abres. Puedes abrirlo para escribir en él, o para leer de él. Si lo
abres para escribir en él, lo debes abrir con permisos de escritura, lo cual se representa
con “w” (write = escribir), para leer de él lo haces con “r” (read = leer).

archivo = open("mi_archivo.txt", “w”)

Dr. Iván Castillo Zúñiga 23


Programación en Python.
2- Escribir en un archivo:

archivo.write("Hola, bienvenidos a la programación de archivos con Python")

3- Cerrar el archivo:

archivo.close()

Ejemplo (Abrir, escribir y cerrar):

archivo = open(‘mi_archivo.txt’, ‘w’)


archivo.write("Hola, bienvenidos a la programación de archivos con Python")
archivo.close()

Ejemplo (Abrir, leer y cerrar):

archivo = open(‘mi_archivo.txt’, ‘r’)


archivo.read()
archivo.close()

read() Lee todo el archivo, pero puedes leer renglón por renglón, utilizando
readlines() y simple bucle for para recorrer cada renglón:

archivo = open(‘mi_archivo.txt’, ‘r’)


for linea in archivo.readlines():
print (linea)
archivo.close()

Ejemplo 1: Construir un programa para crear un archivo, en donde se escribira el texto


“Hola, bienvenidos a la programación en Python”, seguidos del texto en otra línea “Es hora
de empezar…..!”. La solución se muestra en la Fig. 29., y el archivo creado se muestra en la
Fig. 30.

Figura 29. Programa para crear y escribir en un archivo de texto.

Dr. Iván Castillo Zúñiga 24


Programación en Python.
Figura 30. Archivo de texto construido ‘mi_archivo.txt’.

Ejemplo 2: Construir un programa para leer el archivo creado en el ejemplo 1. La solución


se muestra en la Fig. 31.

Figura 31. Programa para leer un archivo de texto.

2.5.2 Descarga, clonación y lectura de archivos de Internet.


En todos los lenguajes de programación modernos existen múltiples librerías que nos
permiten hacer peticiones HTTP, FTP, etc. Pero por lo general, las librerías nativas de varios
de estos lenguajes tienen fines tan genéricos que se necesitan algunas líneas extras de código
para conseguir un fin específico. En el caso de python contamos con la librería nativa urllib
(urllib2 en python 2.7), la cual provee de múltiples métodos para obtener todo tipo de
información de una url, además de utilidades para normalizar los datos obtenidos, esta
librería es sin duda muy útil, pero imaginando que queremos consumir un API completo,
¿cual es la mejor opción? La verdad es que para esto, sin duda es mejor instalar “requests”.

En ese sentido, la comunidad de Python ha adoptado a la librería Requests como el método


predilecto para el manejo de entrada y salida HTTP. Se trata de un paquete de más alto nivel
que urllib y con mayores funcionalidades.

Para instalar requests basta sólo con correr el comando pip, el proceso se muestra en la Fig.32.

Pip install request

Figura 32. Programa para leer un archivo de texto.

Dr. Iván Castillo Zúñiga 25


Programación en Python.
Ejemplo 3: Construir un programa para descargar un archivo de la Web, clonarlo en un
archivo local, leerlo y presentarlo en pantalla. La solución se muestra en la Fig. 33.

Figura 33. Programa para descarga de archivo Web, clonación y lectura.

Ejercicios del objetivo 2.5 Archivos.

1. Diseña un programa que cuente el número de caracteres de un archivo de texto,


incluyendo los saltos de línea (El nombre del archivo se pide al usuario por teclado).
2. Haz un programa que, dada una palabra y un nombre de archivo, diga si la palabra
aparece o no en el archivo y cuantas veces aparece (El nombre del archivo y la
palabra se pedirán al usuario por teclado).
3. Haz un programa que, dado un nombre de archivo, muestre cada una de sus líneas
precedida por su número de línea (El nombre del archivo se pedirá al usuario por
teclado).

Dr. Iván Castillo Zúñiga 26


Programación en Python.
Bibliografía.

1. Adnan, A., Lee, T. & Prakash, Amit. (2016). “Elements of Programming Interviews in
Python. The insider Guide”. Ed. Amazon Services. 458 pág. ISBN: 978-1537713946.
2. Barry, P. (2016). “Head First Python”. 2nd Edition. Boston: O ́Reilly. 429 pág. ISBN: 978-
1491919538.
3. Bennett, J. (2019). “Supercharged Python: Take Your Code to the Next Level”. Ed. Addison-
Wesley. 672 pág. ISBN: 978-0135159941.
4. Blog Tecnología para el Desarrollo (2018). “Es Python el lenguaje del futuro”. Descargado el
9 de septiembre del sitio de Internet:
https://www.paradigmadigital.com/dev/es-python-el-lenguaje-del-futuro/
5. Buttu, M. (2016). “El Gran libro de Python”. Ed. Marcocombo. 662 pág. ISBN: 978-
8426722904.
6. Danjou, J. (2019). “Serious Python: Black-Belt Advice on Deployment, Scalability, Testing,
and More”. Ed. Amazon Digital, version Kindle. 225 pág. ISBN: 1593278780.
7. Deitel, P. (2019). “Python for Programmers: with Big Data and Artificial Intelligence Case
Studies”. Ed. Amazon Services. Version kindle. 640 pág. ASIN: B07PP9Q8MC.
8. DK. (2017). “Coding Projects in Python”. Editorial: DK Publishing (Dorling Kindersley). 224
pág. ISBN: 978-1465461889.
9. Garcia, A. (2017). “Numerical Methods for Physics (Python)”. CreateSpace Independent
Publishing Platform; 2da. Ed. Editorial: CreateSpace Independent Publishing Platform. 350
Pág. ISBN: 978-1548865498.
10. Hinojosa, Á. (2016). “Python paso a paso”. Ed. Ra-Ma. 230 pág. ISBN: 978-8499646114.
11. Kopec, D. (2019). “Classic Computer Science Problems in Python”. Editorial: Manning
Publications. 224 pág. ISBN: 978-1617295980.
12. Librosweb (2018). “Bases de Datos en Python con MySQL”. Descargado el 14 de septiembre
del sitio de Internet: https://librosweb.es/libro/python/capitulo-12.html
13. Lutz, L. (2018). “Guía paso a paso para aprender programación Python). Ed. Amazon
Services. 246 pág. ASIN: B07CSGFB43.
14. Mueller, J. (2018). “Beginning Programming with Python for Dummies”. Editorial: For
Dummies series. 408 pág. ISBN: 978-1118891452.
15. Nunez-Iglesias, J., Van Der Walt, S. W., & Dashnow, H. (2017). “Elegant Scipy: The Art of
Scientific Python”. Editorial: O'Reilly Media. 282 pág. ASIN: B074RB2FT2.
16. Pérez, A. (2016). “Python fácil”. Editorial: Alfaomega. 284 pág. ISBN: 978-6076226612
17. Rossum (2017). “El tutorial de Python”. Descargado el 13 de septiembre del sitio de Internet:
http://www.pyrhon.org.ar
18. Urban, M., & Murach, J. (2016). “Murach's Python Programming”. Editorial: Mike Murach
& Associates. 590 pág. ISBN: 978-1890774974.
19. Zelle, J. (2016). “Python Programming: An Introduction to Computer Science”. Editorial:
Franklin Beedle & Associates; 3rd ed. 552 pág. ISBN: 978-1590282755.

Dr. Iván Castillo Zúñiga 27


Programación en Python.

También podría gustarte