Unidad 2 - Programación Estructurada Con Python
Unidad 2 - Programación Estructurada Con Python
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:
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.
Para las estructuras condicionales o de selección, Python dispone de la sentencia if, que puede
combinarse con sentencias elif y/o else.
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.”
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.
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:
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
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.
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í:
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.
Una sentencia condicional puede contener a su vez otra sentencia anidada y se pueden anidar
tantas sentencias condicionales como se desee.
Sentencia elif.
La sentencia elif, puede utilizarse cuando existen más de dos alternativas: if ... elif ... else ...
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).
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.
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 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.
while condición:
#cuerpo del bucle
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.
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.
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.
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.
Matriz bidimensional.
import numpy as np
arreglo_bi=np.array([(1,2,3),(4,5,6)])
print (arrelo_bi)
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.
Figura 23. Programa para generar un arreglo con 20 números al azar entre 1 y 100.
Desarrollo de la práctica.
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 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).
En los siguientes objetivos nos enfocaremos a los archivos de texto, de manera general y de
forma específica los archivos del Internet HTML.
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).
3- Cerrar el archivo:
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:
Para instalar requests basta sólo con correr el comando pip, el proceso se muestra en la Fig.32.
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.