Unidad 1 - Fundamentos de Python
Unidad 1 - Fundamentos de Python
PLANTEL AGUASCALIENTES
EDUCACIÓN A DISTANCIA
Materia
Programación en Python
Docente
Dr. Iván Castillo Zúñiga.
[email protected]
Programación en Python. 1
Dr. Iván Castillo Zúñiga
Introducción a la programación en Python.
Python es un lenguaje de programación poderoso y fácil de aprender. Cuenta con estructuras de
datos eficientes y de alto nivel y un enfoque simple pero efectivo a la programación orientada a
objetos. La elegante sintaxis de Python y su tipado dinámico, junto con su naturaleza
interpretada, hacen de éste un lenguaje ideal para scripting y desarrollo rápido de aplicaciones
en diversas áreas y sobre la mayoría de las plataformas.
Podemos afirmar que Python es un lenguaje maduro, con una gran base de desarrolladores,
documentación y proyectos en producción. El crecimiento en el uso del lenguaje está siendo
espectacular gracias, fundamentalmente, a las nuevas tecnologías de Data Science y Machine
Learning, donde junto con el lenguaje R es el rey. Sin embargo, R es un lenguaje más de nicho
que proviene del mundo de la estadística. Python, por otro lado, es un lenguaje de propósito
general y su uso está mucho más extendido. Según las estadísticas para el año 2020, Python
será el mejor lenguaje, seguido de Java y R. Otro índice muy relevante, el PYPL, basado en la
popularidad de los lenguajes de programación en Google, sitúa a Python como el segundo con
un crecimiento del 10% en los últimos 5 años. Otros rankings como el del IEEE a mediados de
2017, también sitúan a Python en los primeros puestos.
Si hablamos específicamente del área de datos, las comparativas son aún más demoledoras.
Recientemente, Kaggle, la plataforma para Machine Learning y Data Science de Google, ha
realizado un estudio recopilando información sobre las preferencias de los profesionales del
sector. Un dato muy significativo es la respuesta a la pregunta: ¿Qué lenguaje de programación
recomendaría a los nuevos científicos de datos aprender primero? Más del 63% de los
encuestados respondió Python.
Python es uno de los lenguajes de programación más versátiles que existen, puede ser usado en
muchos campos diferentes. Es considerado por muchos un lenguaje "todero" que sirve para casi
cualquier propósito. De hecho, como ejemplo, en Instagram aman y usan Python para dar vida
a una plataforma de 400 millones de usuarios activos todos los días que funciona como un tren
perfectamente engrasado.
En estos momentos y viendo hacia el futuro, si eres desarrollador, ingeniero o científico de datos
es un buen momento para aprender Python e involucrarse en esta comunidad. En distintas
partes del mundo existen diversos grupos que organizan diferentes actividades de formación y
divulgación.
Programación en Python. 2
Dr. Iván Castillo Zúñiga
Unidad I.
Fundamentos de Python.
1.1 Orígenes de Python.
1.1.1 Características diferenciales.
1.1.2 Python como lenguaje de scripting.
1.1.3 Python en el desarrollo Web.
1.1.4 Big Data, Data Science, IA: el boom de Python.
1.2 Instalación de Python.
1.2.1 Versión de Python preinstalada en Mac.
1.2.2 Versión de Python para instalar en Mac.
1.2.3 Suite Anaconda.
1.3 ¿Cómo funciona Python?
1.3.1 Pasos para crear un programa en Jupyter “Hola
Mundo”.
1.3.2 Variables y comentarios en el código.
1.3.3 Tipos de datos básicos en Python (numéricos,
textuales y de tipo lista).
1.4 Lectura por teclado (programas dinámicos).
El lenguaje Python surgió a principios de los 90 e inicialmente fue desarrollado por Guido Van
Rossum, un ingeniero holandés que trabajaba en ese momento en el CWI de Ámsterdam, el
Centro de Investigación de Ciencias de la Computación holandés.
Python surgió como un hobby para Guido y su nombre, Python, fue tomado del grupo cómico
británico Monty Python, del que Guido era un gran fan. Desde sus comienzos, Python nació
como un proyecto de software libre y posiblemente deba parte de su éxito a la decisión de
hacerlo código abierto.
Programación en Python. 3
Dr. Iván Castillo Zúñiga
Actualmente, la evolución del lenguaje Python es gestionada por la Python Software
Foundation, una sociedad sin ánimo de lucro dedicada a dar difusión al lenguaje y apoyar su
evolución. Guido sigue totalmente involucrado en el desarrollo y en la toma de decisiones de
diseño.
Python está licenciado bajo licencia PSFL, derivada de BSD y compatible con GPL. Muchas
empresas y organizaciones, como Google, Microsoft o Red Hat, hacen un gran uso de Python y
tienen influencia en su evolución, pero ninguna ejerce un control sobre el mismo. Esto
diferencia a Python de otros lenguajes.
Python tiene una serie de características que lo hacen muy particular y que, sin
duda, le aportan muchas ventajas y están en la raíz de su uso tan extendido.
• Algunos le achacan a Python que es más lento en tiempo de ejecución que otros
lenguajes compilados como Java o C/C++. Y es cierto, al tratarse de un
lenguaje interpretado, Python es más lento.
• Los principios de diseño del lenguaje están guiados por una serie de aforismos
recogidos en el “Zen de Python”. En estos principios podemos ver que la
legibilidad del código y favorecer la simplicidad del mismo son partes esenciales
del diseño del lenguaje desde el principio. Estas ideas han ayudado mucho a que
la curva de aprendizaje de Python sea baja respecto a otros lenguajes.
Programación en Python. 4
Dr. Iván Castillo Zúñiga
1.1.2. Python como lenguaje de scripting.
Otra área en la que Python es pionero es en el mundo del scraping y el crawling, donde
podemos extraer información de páginas web gracias a técnicas de “scraping”,
herramientas de Python como Scrapy son muy usadas en este contexto.
Otro de los campos en los que Python ha brillado en los últimos años es en el desarrollo
de aplicaciones web, principalmente gracias a frameworks de desarrollo web muy
potentes como Django, un framework completo o Flask, un microframework.
En este caso la ventaja que aporta Django, el principal framework para desarrollo web en
Python, es la de ofrecer un marco de trabajo completo y de calidad para desarrollar
aplicaciones web muy rápido. Como su leitmotiv dice es: “el framework para
perfeccionistas con fechas de entrega”.
Programación en Python. 5
Dr. Iván Castillo Zúñiga
1.2 Instalación de Python.
Mac OS X 10.2 y posteriores incluyen de serie una versión de Python para la línea de
órdenes (en el emulador de terminal).
Para usar la versión preinstalada de Python, siga estos pasos:
Debe descargar la última versión de Python disponible para Mac de la siguiente dirección
de internet: https://www.python.org/downloads/mac-osx/
Posteriormente instalar el archivo descargado y seguir los pasos. Una vez
instalado el programa, deberá considerar agregar el icono de Python en la
barra del Mac. La pantalla de la Fig. 2, presenta a Python en ejecución, con el
programa “hola mundo”.
Programación en Python. 6
Dr. Iván Castillo Zúñiga
1.2.3. Suite Anaconda y Jupyter Notebook.
Anaconda.
Jupyter Notebook.
Programación en Python. 7
Dr. Iván Castillo Zúñiga
1.3 ¿Como funciona Python?
Programación en Python. 8
Dr. Iván Castillo Zúñiga
Para el uso de variables, se debe asignar un valor a una variable mediante el signo
(=). Si una variable no esta definida con un valor asignado, intentar usarla
producirá un error. El siguiente ejemplo muestra el calculo del área de un
rectángulo, donde el área=largo * ancho.
Comentarios en el código.
• Números.
• Textos.
• Listas.
Números.
El intérprete actúa como una simple calculadora; deberás ingresar una expresión
y este escribirá los valores. La sintaxis es sencilla: los operadores +, -, * y /
funcionan como en la mayoría de los lenguajes (por ejemplo, Pascal o C); los
paréntesis (()) pueden ser usados para agrupar. Por ejemplo: sumatoria,
multiplicación, resta, división y residuo; Los cuales se muestran en la Fig. 7.
Programación en Python. 9
Dr. Iván Castillo Zúñiga
Figura 7. Código de operaciones básicas en Python.
Los números enteros (por ejemplo 2, 4, 20) son de tipo int, aquellos con una parte
fraccional (por ejemplo 5.0, 1.6) son de tipo float.
La división (/) siempre retorna un punto flotante. Para hacer una división y
obtener un resultado entero (descartando cualquier resultado fraccional), puedes
usar el operador //; y para calcular el residuo podrás usar %.
Por otro lado, se ejecutan distintas operaciones respetando el orden de
precedencia de los operadores.
Programación en Python. 10
Dr. Iván Castillo Zúñiga
Textos.
Además de números, Python puede manipular cadenas de texto, las cuales pueden
ser expresadas de distintas formas. Pueden estar encerradas en comillas simples
('...') o dobles ("...") con el mismo resultado. \ puede ser usado para escapar
comillas, como se muestra en la Fig. 8.
La función utilizada que devuelve la longitud de una cadena de texto, len(), como se
muestra en la Fig. 9.
1.5 Listas.
Python tiene varios tipos de datos compuestos, usados para agrupar otros valores. El
más versátil es la lista, la cual puede ser escrita como una lista de valores separados por
coma (ítems) entre corchetes. Las listas pueden contener ítems de diferentes tipos, pero
usualmente los ítems son del mismo tipo, además cabe señalar que las posiciones de los
elementos de la lista comienzan en la posición cero hasta n - 1.
Índices
Programación en Python. 11
Dr. Iván Castillo Zúñiga
Slicing
Es una técnica que soporta varios índices, lo cual resulta útil para traer porciones
de cadenas, en donde se debe indicar un índice de inicio y un índice de fin, es
decir: Si tenemos la palabra Python y le indicamos que inicie en el índice cero
hasta el índice 2, nos muestra la frase “Py”, es porque el numero del índice se
excluye, no cuenta:
0 1 2 3 4 5
-6 -5 -4 -3 -2 -1
P y t h o n
Frase=palabra[0:2]
Frase=Py
Programación en Python. 12
Dr. Iván Castillo Zúñiga
Figura 10. Manejo de listas con datos textuales y numéricos.
Programación en Python. 13
Dr. Iván Castillo Zúñiga
1.4 Lectura por teclado (programas dinámicos).
Input.
Input, es la función que permite introducir valores por el teclado, esta instrucción
permite guardar un valor en una variable que introduscamos por el teclado.
Sintaxis:
nombre_variable = input ( )
Programación en Python. 14
Dr. Iván Castillo Zúñiga
Figura 12. Programa dinámico convertir mayúsculas a minúsculas y viceversa.
Programación en Python. 15
Dr. Iván Castillo Zúñiga
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 Ŕ eilly. 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.
Programación en Python. 16
Dr. Iván Castillo Zúñiga