SlideShare una empresa de Scribd logo
1 de 55
Descargar para leer sin conexión
01 – Introducción al lenguaje de
programación Python 3
Diego Andrés Alvarez Marín
Profesor Asociado
Universidad Nacional de Colombia
Sede Manizales
Tabla de contenido
● Arquitectura de un computador
● Sistemas operativos
● Bytes
● Lenguajes de programación (lenguaje de
máquina, bajo, medio, alto nivel)
● Python
● Compilador vs Interprete
Arquitectura de un computador
● Procesador (CPU, memoria caché)
● Buses de datos (son las flechas en el dibujo)
● Memoria (de corto y largo plazo)
● Periféricos (entrada, salida)
Sistemas operativos
● Microsoft Windows
● GNU/Linux (y su hijo Android)
● Mac OS X
● iOS
● Unix
● Solarix
● FreeBSD
● BlackBerry OS
Un sistema operativo es un programa o conjunto de programas
que en un sistema informático gestiona los recursos de
hardware y provee servicios a los programas de aplicación.
Estadísticas a Junio 2013 con respecto al uso de
sistemas operativos en los 500 computadores
más poderosos del planeta
Fuente: http://top500.org/statistics/list/
GNU/Linux
GNU/Linux
¿Por qué Linux es mejor?
http://www.whylinuxisbetter.net/
¿Quiere instalar GNU/Linux?
Si está interesado en instalar GNU/Linux, le
recomiendo instalar la distribución Linux Mint (con
el escritorio KDE): http://www.linuxmint.com/
Se recomienda hacerlo inicialmente dentro de
una máquina virtual (si tiene al menos 4 Gb de
RAM):
https://www.youtube.com/results?search_query=instalar+linux+mint+18+virtualbox
De lo contrario instale el sistema operativo desde
el Live CD (no hay necesidad de borrar Windows
para tal fin):
https://www.youtube.com/results?search_query=instalar+linux+mint+18+live+DVD
Bytes
Lenguajes de programación
Es un conjunto de instrucciones diseñadas para expresar
procesos que pueden ser llevados a cabo por las computadoras:
● De máquina: lo entiende directamente el procesador; dichas
instrucciones ejercen un control directo sobre el hardware y
están condicionados por la estructura física de la
computadora que lo soporta. Unos y ceros.
● De bajo nivel (lenguaje ensamblador): forma pnemotécnica
de representar el lenguaje de máquina; constituye la
representación más directa del código máquina específico
para cada arquitectura legible por un programador.
● De nivel intermedio
● De alto nivel: expresan los algoritmos de una manera
adecuada a la capacidad cognitiva humana, en lugar de a la
capacidad ejecutora de las máquinas.
Lenguaje de máquina
Lenguaje de máquina del Intel 8088. El código de
máquina en hexadecimal se resalta en rojo, el
equivalente en lenguaje ensamblador en magenta, y
las direcciones de memoria donde se encuentra el
código, en azul. Abajo se ve un texto en hexadecimal y
ASCII.
Lenguaje de bajo nivel
Ventajas:
● Máximo aprovechamiento de los recursos de la máquina.
● Máxima velocidad posible.
Desventajas:
● Mínima portabilidad (depende de la máquina)
● Requiere de la máxima atención y de una organización
estructurada en base a los planos del hardware y del
objetivo del software.
● Largo tiempo de desarrollo
● Difícil encontrar errores
Lenguaje ensamblador
Lenguaje de nivel intermedio
Lenguajes de alto nivel
Ventajas
● Genera un código más sencillo y comprensible.
● Escribir un código válido para diversas máquinas y,
posiblemente, sistemas operativos.
Inconvenientes
● Reducción de velocidad al ceder el trabajo de bajo
nivel a la máquina.
● Algunos requieren que la máquina cliente posea una
determinada plataforma.
Lenguaje de alto nivel
Visual Basic for Applications: Alt+F11 en MS EXCEL
19
Python vs. otros lenguajes (Agosto 2018)
FUENTE: https://www.tiobe.com/tiobe-index/
https://en.wikipedia.org/wiki/Measuring_programming_language_popularity
20
Fuente:
https://stackoverflow.blog/2017/09/06/incredible-growth-python/
21
Python
Creado por Guido van Rossum
(NL, 1956). Se empezó a
implementar en Dic. 1989 como un
pasatiempo para realizar durante las
vacaciones de navidad.
Python 0.9.0 (Feb 1991)
Python 1.0 (Ene. 1994)
Python 2.0 (Oct. 2000)
Python 3.0 (Dic. 2008)
Python 3.7 (Junio 27, 2018)
El nombre está inspirado en el
programa de la BBC “Monty
Python’s Flying Circus”. Nada que
ver con serpientes.
http://www.bestprogramminglanguagefor.me/why-learn-python
22
Características de Python
● Es uno de los lenguajes de programación más fáciles de
aprender (es un lenguaje de muy alto nivel).
● Es un lenguaje interpretado.
● Lenguaje que permite la creación de prototipos
rápidamente. Permite el desarrollo de programas
complejos en poco tiempo y en pocas líneas comparado
con C/C++ o Java.
● El código fuente es muy fácil de leer y entender (es
prácticamente pseudocódigo ejecutable).
● Se pueden crear funciones hechas en C o C++ y llamarlas
desde Python.
● Permite programación funcional y orientada a objetos.
“Python vs C”
Tomado de: http://xkcd.com/409/
24
Python 2 vs. Python 3
● Python 3 (2008) no es compatible con Python 2 (2000).
Python 2 no se actualiza desde el 2010. Solo se le
corrigen errores de programación y errores críticos de
seguridad. Se soportará hasta el 2020.
● Python 3 corrige muchas inconsistencias que tiene
Python 2, haciéndolo mucho más fácil de aprender para
el principiante.
● Sin embargo Python 2 sigue siendo muy utilizado ya que
existen numerosas librerías escritas de excelente calidad
escritas en ese lenguaje y que aun no han sido
traducidas.
● En el primer semestre de 2013 por primera vez se
empezó a descargar más Python 3 que Python 2.
¿Qué es un compilador?
Un compilador es un programa que permite
traducir el código fuente de un programa en
lenguaje de alto nivel, a otro lenguaje de nivel
inferior (típicamente lenguaje de máquina).
De esta manera un programador puede diseñar
un programa en un lenguaje mucho más cercano
a como piensa un ser humano, para luego
compilarlo a un programa más manejable por una
computadora.
26
¿Qué es un intérprete?
El intérprete o interpretador es un programa informático
capaz de analizar y ejecutar otros programas. Los intérpretes
se diferencian de los compiladores o de los ensambladores
en que mientras estos traducen un programa desde su
descripción en un lenguaje de programación al código de
máquina del sistema, los intérpretes sólo realizan la
traducción a medida que sea necesaria, típicamente,
instrucción por instrucción, y normalmente no guardan el
resultado de dicha traducción.
Los intérpretes son muy útiles ya que son buenos para
experimentar con diferentes instrucciones sin tener que
correr el programa, lo cual disminuye el tiempo de desarrollo
considerablemente, haciendo la programación más
interactiva.
27
Compilador vs. Intérprete
● Un compilador lee completamente un programa en lenguaje de
nivel intermedio/alto y lo traduce en su integridad a un programa
de código de máquina equivalente. El programa de código de
máquina resultante se puede ejecutar cuantas veces se desee,
sin necesidad de volver a traducir el programa original. Ejemplo:
lenguaje C, C++, Pascal, etc.
● Un intérprete lee un programa escrito en un lenguaje de alto
nivel instrucción a instrucción y, para cada una de ellas, efectúa
una traducción a las instrucciones de código de máquina
equivalentes y las ejecuta inmediatamente. No hay un proceso
de traducción separado por completo del de ejecución. Cada
vez que ejecutamos el programa con un intérprete, se repite el
proceso de traducción y ejecución, ya que ambos son
simultáneos. Esto hace que el lenguaje interpretado sea entre
10 y 30 veces más lento que el lenguaje compilador. Ejemplo:
MATLAB, Python, VisualBasic.
Implementaciones de Python
(intérpretes)
● CPython (esta es la implementación oficial y la que utilizaremos)
● Brython
● CLPython
● IronPython
● Jython
● PyMite
● PyPy
● RapydScript
● SNAPpy
● Tinypy
Entre otras: ver https://wiki.python.org/moin/PythonImplementations
Implementaciones de Python
(compiladores)
● Psyco
● 2c-python
● Compyler
● Cython
● GCC Python Front-End
● Numba
● Pyc
● Shed Skin
● UnPython
Entre otras: https://wiki.python.org/moin/PythonImplementations
30
CPython
CPython es la implementación oficial y más
ampliamente utilizada del lenguaje de
programación Python. Está escrita en lenguaje C.
Está desarrollada por varios desarrolladores de
software libre, la comunidad usuaria de Python y
la "Python Software Foundation".
Se descarga de: https://www.python.org/downloads/
Instalación en Linux:
# sudo apt-get install python3 idle3
31
Versiones actuales de CPython
● Python 2.7: tendrá soporte hasta el 2020
(bugfixes).
● Python 3 (3.7 es la versión más reciente y la
que veremos en el curso)
● Ambas versiones se descargan de
https://www.python.org/downloads/
32
32 o 64 bits?
● Si usted tiene Windows de 32 bits, instale la versión de
32 bits.
● Si usted tiene más de 4 Gb de memoria RAM y
Windows de 32, cambie su sistema operativo por uno
de 64 bits.
● En un sistema operativo de 64 bits se puede instalar
Python de 32 o de 64 bits.
● Algunos programadores dicen que para evitar ciertos
problemas de compatibilidad entre paquetes se
recomienda instalar Python de 32 bits.
33
El intérprete de Python
● En Linux:
– /usr/bin/python (Python 2.7)
– /usr/bin/python3 (Python 3.x)
● Windows:
– C:Python37
34
Modo interactivo
● Se caracteriza por el cursor símbolo
>>>
● Sirve como calculadora
● Sirve para comprobar el contenido de las
variables en memoria
● Sirve para ejecutar pequeños pedazos de
código y mirar como se comportan
35
Shells para trabajo interactivo
● Python3 (the standard python interpreter)
● idle3
● jupyter (antes llamado ipython)
https://jupyter.org/ https://ipython.org/
– console
– qtconsole
– notebook
36
El archivo de código
fuente en un lenguaje
interpretado se le
conoce como script.
Este tiene
extensión .py
Aquí se observa la
forma de ejecutar el
script.
Modo
interactivo
Se sale con:
● exit() o quit()
● Linux: Ctrl + D
● Windows: Ctrl + Z
Modo
programa
autónomo
37
Documentación
● La documentación oficial (en PDF):
https://docs.python.org/3.6/download.html
● En linux:
● La ayuda en línea con help()
# sudo apt-get install python3-doc python3.6-doc python3-examples
38
Interactive help
39
Interactive help in jupyter
40
PyPI – The Python Package Index
Este es un repositorio de librerías de Python hechas
por personas como usted o yo. Actualmente alberga
149.326 proyectos (Agosto 17, 2018).
41
Distribuciones de Python
(basadas en CPython)
● ActivePython from ActiveState
● Anaconda from Continuum Analytics
https://www.anaconda.com/distribution/
● Enthought's Canopy
● PocketPython
● PyIMSL Studio
● PyPy: a Python implementation in Python.
● StacklessPython
● entre otras...
Esta es la distribución de
Python que utilizaremos y
que debemos instalar
42
Creando código en Python
● Intérprete
● Se utiliza cualquier editor de texto (extensión .py). Procure
que la codificación de sus archivos de texto sea UTF-8.
● El editor de moda en el momento es Visual Studio Code
https://code.visualstudio.com/
● Otro editor de texto bastante popular entre los phytonistas
es Sublime Text
http://www.sublimetext.com/
43
Codificación de los archivos
● Python 2.7: ASCII
● Python 3: Unicode UTF-8
Si usted quiere utilizar una codificación diferente
a la UTF-8, en la primera o segunda línea de su
script, escriba:
# -*- coding: iso-8859-1 -*-
Coloque aquí el nombre
de su codificación.
Ver codificaciones disponibles en: https://docs.python.org/3.4/library/codecs.html
Si usted trabaja en
Windows ¡actívela!
Entorno de desarrollo integrado
(IDE Integrated Development Environment)
Un IDE es un entorno de programación que ha
sido empaquetado como un programa de
aplicación; es decir, consiste en:
● un editor de código
● un compilador/interpretador
● un depurador
● un constructor de interfaz gráfica (GUI)
45
IDEs para Python
● Se recomienda:
– Wing IDE 101 http://wingware.com/downloads/wingide-101
– PyCharm Educational Edition https://www.jetbrains.com/pycharm-educational/
– Spyder (viene incluído en Anaconda) https://github.com/spyder-ide/spyder
● Otros IDEs son:
– PyDev + Eclipse
– Komodo IDE
– Ninja
Procure que la codificación de sus
archivos de texto sea UTF-8.
46
Wing IDE
https://wingware.com/downloads/wing-101
47
PyCharm
https://www.jetbrains.com/pycharm-edu/download/
48
Spyder
Viene incluído con el Anaconda https://www.spyder-ide.org/
49
Thonny
https://thonny.org/
50
Komodo
51
PyDev
52
Activando la codificación UTF-8
WingIDE 101:
Edit -> Preferences
Files -> Default Encoding
Unicode (UTF - 8)
54
Referencias
● Wikipedia
● http://www.inventwithpython.com/
● http://www.diveintopython3.net/
● Documentación de Python:
– https://docs.python.org/3/tutorial/index.html
– https://docs.python.org/3/
● Marzal Varó, Andrés; Gracia Luengo, Isabel; García Sevilla,
Pedro (2014). Introducción a la programación con Python 3.
Disponible en: http://dx.doi.org/10.6035/Sapientia93
55
Consejos
● Aprender a programar es una tarea que requiere
perseverancia y paciencia.
● Estudiar con juicio el código fuente de otras
personas es un excelente método de aprendizaje ya
que así se descubren trucos y formas de programar.
● Aprenda a frecuentar los foros de programadores en
internet (por ejemplo: https://stackoverflow.com/).
Allí encontrará cientos de personas que lo pueden
ayudar a resolver sus dudas.
56
Referencias
● Wikipedia
● http://www.inventwithpython.com/
● http://www.diveintopython3.net/
● Documentación de Python:
– https://docs.python.org/3/tutorial/index.html
– https://docs.python.org/3/
● Marzal Varó, Andrés; Gracia Luengo, Isabel; García Sevilla,
Pedro (2014). Introducción a la programación con Python 3.
Disponible en: http://dx.doi.org/10.6035/Sapientia93

Más contenido relacionado

La actualidad más candente

Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooJosé Antonio Sandoval Acosta
 
Ejercicio compiladores
Ejercicio compiladoresEjercicio compiladores
Ejercicio compiladoresSheyli Patiño
 
Sintaxis de los algoritmos estructurados
Sintaxis de los algoritmos estructuradosSintaxis de los algoritmos estructurados
Sintaxis de los algoritmos estructuradosAriMendoza9
 
DiseñO De Compilador
DiseñO De CompiladorDiseñO De Compilador
DiseñO De CompiladorBigbossH
 
Learn java in hindi
Learn java in hindiLearn java in hindi
Learn java in hindiVipin sharma
 
Cualidades de un lenguaje de programación
Cualidades de un lenguaje de programaciónCualidades de un lenguaje de programación
Cualidades de un lenguaje de programaciónJose Gallardo
 
Resumen línea comandos linux para bachillerato
Resumen línea comandos linux para bachilleratoResumen línea comandos linux para bachillerato
Resumen línea comandos linux para bachilleratoaramosprofe
 
Guía básica de Visual Basic 6.0
Guía básica de Visual Basic 6.0Guía básica de Visual Basic 6.0
Guía básica de Visual Basic 6.0patrimoni
 
Configuración de NetBeans para Java, C y C++
Configuración de NetBeans para Java, C y C++Configuración de NetBeans para Java, C y C++
Configuración de NetBeans para Java, C y C++victorconejo80
 
Técnicas de administración del planificador
Técnicas de administración del planificadorTécnicas de administración del planificador
Técnicas de administración del planificadorCristian Izquierdo
 
Algoritmos if y case
Algoritmos if y caseAlgoritmos if y case
Algoritmos if y caseAbbie Ulrich
 
Fundamentos de Programacion - Unidad 1 conceptos basicos
Fundamentos de Programacion - Unidad 1 conceptos basicosFundamentos de Programacion - Unidad 1 conceptos basicos
Fundamentos de Programacion - Unidad 1 conceptos basicosJosé Antonio Sandoval Acosta
 
Programacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetosProgramacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetosJosé Antonio Sandoval Acosta
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivasstarduslex
 
Fundamentos de programación.pptx
Fundamentos de programación.pptxFundamentos de programación.pptx
Fundamentos de programación.pptxWaldirOzuna2
 

La actualidad más candente (20)

Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma poo
 
Lenguaje c++
Lenguaje c++Lenguaje c++
Lenguaje c++
 
Ejercicio compiladores
Ejercicio compiladoresEjercicio compiladores
Ejercicio compiladores
 
Sintaxis de los algoritmos estructurados
Sintaxis de los algoritmos estructuradosSintaxis de los algoritmos estructurados
Sintaxis de los algoritmos estructurados
 
DiseñO De Compilador
DiseñO De CompiladorDiseñO De Compilador
DiseñO De Compilador
 
Planificacion de procesos
Planificacion de procesosPlanificacion de procesos
Planificacion de procesos
 
Learn java in hindi
Learn java in hindiLearn java in hindi
Learn java in hindi
 
Variables y constantes
Variables y constantesVariables y constantes
Variables y constantes
 
P.O.O.
P.O.O.P.O.O.
P.O.O.
 
Cualidades de un lenguaje de programación
Cualidades de un lenguaje de programaciónCualidades de un lenguaje de programación
Cualidades de un lenguaje de programación
 
Resumen línea comandos linux para bachillerato
Resumen línea comandos linux para bachilleratoResumen línea comandos linux para bachillerato
Resumen línea comandos linux para bachillerato
 
Guía básica de Visual Basic 6.0
Guía básica de Visual Basic 6.0Guía básica de Visual Basic 6.0
Guía básica de Visual Basic 6.0
 
Clase 1 lógica de programación
Clase 1 lógica de programaciónClase 1 lógica de programación
Clase 1 lógica de programación
 
Configuración de NetBeans para Java, C y C++
Configuración de NetBeans para Java, C y C++Configuración de NetBeans para Java, C y C++
Configuración de NetBeans para Java, C y C++
 
Técnicas de administración del planificador
Técnicas de administración del planificadorTécnicas de administración del planificador
Técnicas de administración del planificador
 
Algoritmos if y case
Algoritmos if y caseAlgoritmos if y case
Algoritmos if y case
 
Fundamentos de Programacion - Unidad 1 conceptos basicos
Fundamentos de Programacion - Unidad 1 conceptos basicosFundamentos de Programacion - Unidad 1 conceptos basicos
Fundamentos de Programacion - Unidad 1 conceptos basicos
 
Programacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetosProgramacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetos
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivas
 
Fundamentos de programación.pptx
Fundamentos de programación.pptxFundamentos de programación.pptx
Fundamentos de programación.pptx
 

Similar a 01 - Introducción al lenguaje de programación Python 3

02- Clase 1 - UD2 - Lenguajes.pdf
02- Clase 1 - UD2 -  Lenguajes.pdf02- Clase 1 - UD2 -  Lenguajes.pdf
02- Clase 1 - UD2 - Lenguajes.pdfNancyHerrera88
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesIsrael Castillo Cruz
 
Los lenguajes del computador
Los lenguajes del computadorLos lenguajes del computador
Los lenguajes del computadorLuisGerdez
 
Los lenguajes del computador CORRECIÓN
Los lenguajes del computador CORRECIÓNLos lenguajes del computador CORRECIÓN
Los lenguajes del computador CORRECIÓNLuisGerdez
 
LENGUAJES DE PROGRAMACION
LENGUAJES DE PROGRAMACIONLENGUAJES DE PROGRAMACION
LENGUAJES DE PROGRAMACIONBryan Perdomo
 
Conceptos De Compilador
Conceptos De CompiladorConceptos De Compilador
Conceptos De CompiladorJoel Soto
 
Conceptos de compilador
Conceptos de compiladorConceptos de compilador
Conceptos de compiladorJoel Soto
 
Electonica de potencia, diodos de rectificacion
Electonica de potencia, diodos de rectificacionElectonica de potencia, diodos de rectificacion
Electonica de potencia, diodos de rectificacionBEYMARCALLECONDE
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller senadejuansi2
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller senazeepulveediita20
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller senazeepulveediita20
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller senaNat Alia
 
Diseño de Algoritmos
 Diseño de Algoritmos Diseño de Algoritmos
Diseño de AlgoritmosTaniaCalle
 
Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretadorFrancisco Leal
 
Presentación lenguajedeprogramacion
Presentación lenguajedeprogramacionPresentación lenguajedeprogramacion
Presentación lenguajedeprogramacionmichelledelgado97
 

Similar a 01 - Introducción al lenguaje de programación Python 3 (20)

01 - Introducción al lenguaje C
01 - Introducción al lenguaje C01 - Introducción al lenguaje C
01 - Introducción al lenguaje C
 
02- Clase 1 - UD2 - Lenguajes.pdf
02- Clase 1 - UD2 -  Lenguajes.pdf02- Clase 1 - UD2 -  Lenguajes.pdf
02- Clase 1 - UD2 - Lenguajes.pdf
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretes
 
Los lenguajes del computador
Los lenguajes del computadorLos lenguajes del computador
Los lenguajes del computador
 
Los lenguajes del computador CORRECIÓN
Los lenguajes del computador CORRECIÓNLos lenguajes del computador CORRECIÓN
Los lenguajes del computador CORRECIÓN
 
Programador Jr. para Python Primera Parte
Programador Jr. para Python Primera ParteProgramador Jr. para Python Primera Parte
Programador Jr. para Python Primera Parte
 
LENGUAJES DE PROGRAMACION
LENGUAJES DE PROGRAMACIONLENGUAJES DE PROGRAMACION
LENGUAJES DE PROGRAMACION
 
Conceptos De Compilador
Conceptos De CompiladorConceptos De Compilador
Conceptos De Compilador
 
Conceptos de compilador
Conceptos de compiladorConceptos de compilador
Conceptos de compilador
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Electonica de potencia, diodos de rectificacion
Electonica de potencia, diodos de rectificacionElectonica de potencia, diodos de rectificacion
Electonica de potencia, diodos de rectificacion
 
Traductores bajo-nivel
Traductores bajo-nivelTraductores bajo-nivel
Traductores bajo-nivel
 
PROGRAMACIÓN DE MICROCONTROLADOR
PROGRAMACIÓN DE MICROCONTROLADORPROGRAMACIÓN DE MICROCONTROLADOR
PROGRAMACIÓN DE MICROCONTROLADOR
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller sena
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller sena
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller sena
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller sena
 
Diseño de Algoritmos
 Diseño de Algoritmos Diseño de Algoritmos
Diseño de Algoritmos
 
Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretador
 
Presentación lenguajedeprogramacion
Presentación lenguajedeprogramacionPresentación lenguajedeprogramacion
Presentación lenguajedeprogramacion
 

Más de Diego Andrés Alvarez Marín

Alvarez (2023) - Teoría de la Elasticidad usando Matlab y Maxima - volumen 1 ...
Alvarez (2023) - Teoría de la Elasticidad usando Matlab y Maxima - volumen 1 ...Alvarez (2023) - Teoría de la Elasticidad usando Matlab y Maxima - volumen 1 ...
Alvarez (2023) - Teoría de la Elasticidad usando Matlab y Maxima - volumen 1 ...Diego Andrés Alvarez Marín
 
07 - Tipos de datos definidos por el programador en lenguaje C: struct, typed...
07 - Tipos de datos definidos por el programador en lenguaje C: struct, typed...07 - Tipos de datos definidos por el programador en lenguaje C: struct, typed...
07 - Tipos de datos definidos por el programador en lenguaje C: struct, typed...Diego Andrés Alvarez Marín
 
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...Diego Andrés Alvarez Marín
 
02 - Conceptos fundamentales sobre tipos de datos en lenguaje C
02 - Conceptos fundamentales sobre tipos de datos en lenguaje C02 - Conceptos fundamentales sobre tipos de datos en lenguaje C
02 - Conceptos fundamentales sobre tipos de datos en lenguaje CDiego Andrés Alvarez Marín
 
07 – Estimación puntual e introducción a la estadística inferencial
07 – Estimación puntual e introducción a la estadística inferencial07 – Estimación puntual e introducción a la estadística inferencial
07 – Estimación puntual e introducción a la estadística inferencialDiego Andrés Alvarez Marín
 
00/01 - Introduccion al curso y a la estadística descriptiva
00/01 - Introduccion al curso y a la estadística descriptiva00/01 - Introduccion al curso y a la estadística descriptiva
00/01 - Introduccion al curso y a la estadística descriptivaDiego Andrés Alvarez Marín
 

Más de Diego Andrés Alvarez Marín (17)

Alvarez (2023) - Teoría de la Elasticidad usando Matlab y Maxima - volumen 1 ...
Alvarez (2023) - Teoría de la Elasticidad usando Matlab y Maxima - volumen 1 ...Alvarez (2023) - Teoría de la Elasticidad usando Matlab y Maxima - volumen 1 ...
Alvarez (2023) - Teoría de la Elasticidad usando Matlab y Maxima - volumen 1 ...
 
03 - Cadenas en Python 3
03 - Cadenas en Python 303 - Cadenas en Python 3
03 - Cadenas en Python 3
 
02 - Tipos de datos escalares en Python 3
02 - Tipos de datos escalares en Python 302 - Tipos de datos escalares en Python 3
02 - Tipos de datos escalares en Python 3
 
06 - Arrays y matrices en lenguaje C
06 - Arrays y matrices en lenguaje C06 - Arrays y matrices en lenguaje C
06 - Arrays y matrices en lenguaje C
 
07 - Tipos de datos definidos por el programador en lenguaje C: struct, typed...
07 - Tipos de datos definidos por el programador en lenguaje C: struct, typed...07 - Tipos de datos definidos por el programador en lenguaje C: struct, typed...
07 - Tipos de datos definidos por el programador en lenguaje C: struct, typed...
 
05 - Funciones en lenguaje C
05 - Funciones en lenguaje C05 - Funciones en lenguaje C
05 - Funciones en lenguaje C
 
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
 
03 - Entrada y salida en lenguaje C
03 - Entrada y salida en lenguaje C03 - Entrada y salida en lenguaje C
03 - Entrada y salida en lenguaje C
 
08 - Punteros en lenguaje C
08 - Punteros en lenguaje C08 - Punteros en lenguaje C
08 - Punteros en lenguaje C
 
02 - Conceptos fundamentales sobre tipos de datos en lenguaje C
02 - Conceptos fundamentales sobre tipos de datos en lenguaje C02 - Conceptos fundamentales sobre tipos de datos en lenguaje C
02 - Conceptos fundamentales sobre tipos de datos en lenguaje C
 
07 – Estimación puntual e introducción a la estadística inferencial
07 – Estimación puntual e introducción a la estadística inferencial07 – Estimación puntual e introducción a la estadística inferencial
07 – Estimación puntual e introducción a la estadística inferencial
 
06 - Variables aleatorias conjuntas
06 - Variables aleatorias conjuntas06 - Variables aleatorias conjuntas
06 - Variables aleatorias conjuntas
 
05 - Funciones de densidad de probabilidad
05 - Funciones de densidad de probabilidad05 - Funciones de densidad de probabilidad
05 - Funciones de densidad de probabilidad
 
04 - Funciones de distribución discretas
04 - Funciones de distribución discretas04 - Funciones de distribución discretas
04 - Funciones de distribución discretas
 
03 Variable Aleatoria
03   Variable Aleatoria03   Variable Aleatoria
03 Variable Aleatoria
 
02 - Introducción a la teoría de probabilidad
02 - Introducción a la teoría de probabilidad02 - Introducción a la teoría de probabilidad
02 - Introducción a la teoría de probabilidad
 
00/01 - Introduccion al curso y a la estadística descriptiva
00/01 - Introduccion al curso y a la estadística descriptiva00/01 - Introduccion al curso y a la estadística descriptiva
00/01 - Introduccion al curso y a la estadística descriptiva
 

Último

c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)veganet
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 

Último (20)

c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 

01 - Introducción al lenguaje de programación Python 3

  • 1. 01 – Introducción al lenguaje de programación Python 3 Diego Andrés Alvarez Marín Profesor Asociado Universidad Nacional de Colombia Sede Manizales
  • 2. Tabla de contenido ● Arquitectura de un computador ● Sistemas operativos ● Bytes ● Lenguajes de programación (lenguaje de máquina, bajo, medio, alto nivel) ● Python ● Compilador vs Interprete
  • 3. Arquitectura de un computador ● Procesador (CPU, memoria caché) ● Buses de datos (son las flechas en el dibujo) ● Memoria (de corto y largo plazo) ● Periféricos (entrada, salida)
  • 4. Sistemas operativos ● Microsoft Windows ● GNU/Linux (y su hijo Android) ● Mac OS X ● iOS ● Unix ● Solarix ● FreeBSD ● BlackBerry OS Un sistema operativo es un programa o conjunto de programas que en un sistema informático gestiona los recursos de hardware y provee servicios a los programas de aplicación.
  • 5. Estadísticas a Junio 2013 con respecto al uso de sistemas operativos en los 500 computadores más poderosos del planeta Fuente: http://top500.org/statistics/list/
  • 8. ¿Por qué Linux es mejor? http://www.whylinuxisbetter.net/
  • 9. ¿Quiere instalar GNU/Linux? Si está interesado en instalar GNU/Linux, le recomiendo instalar la distribución Linux Mint (con el escritorio KDE): http://www.linuxmint.com/ Se recomienda hacerlo inicialmente dentro de una máquina virtual (si tiene al menos 4 Gb de RAM): https://www.youtube.com/results?search_query=instalar+linux+mint+18+virtualbox De lo contrario instale el sistema operativo desde el Live CD (no hay necesidad de borrar Windows para tal fin): https://www.youtube.com/results?search_query=instalar+linux+mint+18+live+DVD
  • 10. Bytes
  • 11. Lenguajes de programación Es un conjunto de instrucciones diseñadas para expresar procesos que pueden ser llevados a cabo por las computadoras: ● De máquina: lo entiende directamente el procesador; dichas instrucciones ejercen un control directo sobre el hardware y están condicionados por la estructura física de la computadora que lo soporta. Unos y ceros. ● De bajo nivel (lenguaje ensamblador): forma pnemotécnica de representar el lenguaje de máquina; constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador. ● De nivel intermedio ● De alto nivel: expresan los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las máquinas.
  • 12. Lenguaje de máquina Lenguaje de máquina del Intel 8088. El código de máquina en hexadecimal se resalta en rojo, el equivalente en lenguaje ensamblador en magenta, y las direcciones de memoria donde se encuentra el código, en azul. Abajo se ve un texto en hexadecimal y ASCII.
  • 13. Lenguaje de bajo nivel Ventajas: ● Máximo aprovechamiento de los recursos de la máquina. ● Máxima velocidad posible. Desventajas: ● Mínima portabilidad (depende de la máquina) ● Requiere de la máxima atención y de una organización estructurada en base a los planos del hardware y del objetivo del software. ● Largo tiempo de desarrollo ● Difícil encontrar errores
  • 15. Lenguaje de nivel intermedio
  • 16.
  • 17. Lenguajes de alto nivel Ventajas ● Genera un código más sencillo y comprensible. ● Escribir un código válido para diversas máquinas y, posiblemente, sistemas operativos. Inconvenientes ● Reducción de velocidad al ceder el trabajo de bajo nivel a la máquina. ● Algunos requieren que la máquina cliente posea una determinada plataforma.
  • 18. Lenguaje de alto nivel Visual Basic for Applications: Alt+F11 en MS EXCEL
  • 19. 19 Python vs. otros lenguajes (Agosto 2018) FUENTE: https://www.tiobe.com/tiobe-index/ https://en.wikipedia.org/wiki/Measuring_programming_language_popularity
  • 21. 21 Python Creado por Guido van Rossum (NL, 1956). Se empezó a implementar en Dic. 1989 como un pasatiempo para realizar durante las vacaciones de navidad. Python 0.9.0 (Feb 1991) Python 1.0 (Ene. 1994) Python 2.0 (Oct. 2000) Python 3.0 (Dic. 2008) Python 3.7 (Junio 27, 2018) El nombre está inspirado en el programa de la BBC “Monty Python’s Flying Circus”. Nada que ver con serpientes. http://www.bestprogramminglanguagefor.me/why-learn-python
  • 22. 22 Características de Python ● Es uno de los lenguajes de programación más fáciles de aprender (es un lenguaje de muy alto nivel). ● Es un lenguaje interpretado. ● Lenguaje que permite la creación de prototipos rápidamente. Permite el desarrollo de programas complejos en poco tiempo y en pocas líneas comparado con C/C++ o Java. ● El código fuente es muy fácil de leer y entender (es prácticamente pseudocódigo ejecutable). ● Se pueden crear funciones hechas en C o C++ y llamarlas desde Python. ● Permite programación funcional y orientada a objetos.
  • 23. “Python vs C” Tomado de: http://xkcd.com/409/
  • 24. 24 Python 2 vs. Python 3 ● Python 3 (2008) no es compatible con Python 2 (2000). Python 2 no se actualiza desde el 2010. Solo se le corrigen errores de programación y errores críticos de seguridad. Se soportará hasta el 2020. ● Python 3 corrige muchas inconsistencias que tiene Python 2, haciéndolo mucho más fácil de aprender para el principiante. ● Sin embargo Python 2 sigue siendo muy utilizado ya que existen numerosas librerías escritas de excelente calidad escritas en ese lenguaje y que aun no han sido traducidas. ● En el primer semestre de 2013 por primera vez se empezó a descargar más Python 3 que Python 2.
  • 25. ¿Qué es un compilador? Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a como piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora.
  • 26. 26 ¿Qué es un intérprete? El intérprete o interpretador es un programa informático capaz de analizar y ejecutar otros programas. Los intérpretes se diferencian de los compiladores o de los ensambladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de máquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción. Los intérpretes son muy útiles ya que son buenos para experimentar con diferentes instrucciones sin tener que correr el programa, lo cual disminuye el tiempo de desarrollo considerablemente, haciendo la programación más interactiva.
  • 27. 27 Compilador vs. Intérprete ● Un compilador lee completamente un programa en lenguaje de nivel intermedio/alto y lo traduce en su integridad a un programa de código de máquina equivalente. El programa de código de máquina resultante se puede ejecutar cuantas veces se desee, sin necesidad de volver a traducir el programa original. Ejemplo: lenguaje C, C++, Pascal, etc. ● Un intérprete lee un programa escrito en un lenguaje de alto nivel instrucción a instrucción y, para cada una de ellas, efectúa una traducción a las instrucciones de código de máquina equivalentes y las ejecuta inmediatamente. No hay un proceso de traducción separado por completo del de ejecución. Cada vez que ejecutamos el programa con un intérprete, se repite el proceso de traducción y ejecución, ya que ambos son simultáneos. Esto hace que el lenguaje interpretado sea entre 10 y 30 veces más lento que el lenguaje compilador. Ejemplo: MATLAB, Python, VisualBasic.
  • 28. Implementaciones de Python (intérpretes) ● CPython (esta es la implementación oficial y la que utilizaremos) ● Brython ● CLPython ● IronPython ● Jython ● PyMite ● PyPy ● RapydScript ● SNAPpy ● Tinypy Entre otras: ver https://wiki.python.org/moin/PythonImplementations
  • 29. Implementaciones de Python (compiladores) ● Psyco ● 2c-python ● Compyler ● Cython ● GCC Python Front-End ● Numba ● Pyc ● Shed Skin ● UnPython Entre otras: https://wiki.python.org/moin/PythonImplementations
  • 30. 30 CPython CPython es la implementación oficial y más ampliamente utilizada del lenguaje de programación Python. Está escrita en lenguaje C. Está desarrollada por varios desarrolladores de software libre, la comunidad usuaria de Python y la "Python Software Foundation". Se descarga de: https://www.python.org/downloads/ Instalación en Linux: # sudo apt-get install python3 idle3
  • 31. 31 Versiones actuales de CPython ● Python 2.7: tendrá soporte hasta el 2020 (bugfixes). ● Python 3 (3.7 es la versión más reciente y la que veremos en el curso) ● Ambas versiones se descargan de https://www.python.org/downloads/
  • 32. 32 32 o 64 bits? ● Si usted tiene Windows de 32 bits, instale la versión de 32 bits. ● Si usted tiene más de 4 Gb de memoria RAM y Windows de 32, cambie su sistema operativo por uno de 64 bits. ● En un sistema operativo de 64 bits se puede instalar Python de 32 o de 64 bits. ● Algunos programadores dicen que para evitar ciertos problemas de compatibilidad entre paquetes se recomienda instalar Python de 32 bits.
  • 33. 33 El intérprete de Python ● En Linux: – /usr/bin/python (Python 2.7) – /usr/bin/python3 (Python 3.x) ● Windows: – C:Python37
  • 34. 34 Modo interactivo ● Se caracteriza por el cursor símbolo >>> ● Sirve como calculadora ● Sirve para comprobar el contenido de las variables en memoria ● Sirve para ejecutar pequeños pedazos de código y mirar como se comportan
  • 35. 35 Shells para trabajo interactivo ● Python3 (the standard python interpreter) ● idle3 ● jupyter (antes llamado ipython) https://jupyter.org/ https://ipython.org/ – console – qtconsole – notebook
  • 36. 36 El archivo de código fuente en un lenguaje interpretado se le conoce como script. Este tiene extensión .py Aquí se observa la forma de ejecutar el script. Modo interactivo Se sale con: ● exit() o quit() ● Linux: Ctrl + D ● Windows: Ctrl + Z Modo programa autónomo
  • 37. 37 Documentación ● La documentación oficial (en PDF): https://docs.python.org/3.6/download.html ● En linux: ● La ayuda en línea con help() # sudo apt-get install python3-doc python3.6-doc python3-examples
  • 40. 40 PyPI – The Python Package Index Este es un repositorio de librerías de Python hechas por personas como usted o yo. Actualmente alberga 149.326 proyectos (Agosto 17, 2018).
  • 41. 41 Distribuciones de Python (basadas en CPython) ● ActivePython from ActiveState ● Anaconda from Continuum Analytics https://www.anaconda.com/distribution/ ● Enthought's Canopy ● PocketPython ● PyIMSL Studio ● PyPy: a Python implementation in Python. ● StacklessPython ● entre otras... Esta es la distribución de Python que utilizaremos y que debemos instalar
  • 42. 42 Creando código en Python ● Intérprete ● Se utiliza cualquier editor de texto (extensión .py). Procure que la codificación de sus archivos de texto sea UTF-8. ● El editor de moda en el momento es Visual Studio Code https://code.visualstudio.com/ ● Otro editor de texto bastante popular entre los phytonistas es Sublime Text http://www.sublimetext.com/
  • 43. 43 Codificación de los archivos ● Python 2.7: ASCII ● Python 3: Unicode UTF-8 Si usted quiere utilizar una codificación diferente a la UTF-8, en la primera o segunda línea de su script, escriba: # -*- coding: iso-8859-1 -*- Coloque aquí el nombre de su codificación. Ver codificaciones disponibles en: https://docs.python.org/3.4/library/codecs.html Si usted trabaja en Windows ¡actívela!
  • 44. Entorno de desarrollo integrado (IDE Integrated Development Environment) Un IDE es un entorno de programación que ha sido empaquetado como un programa de aplicación; es decir, consiste en: ● un editor de código ● un compilador/interpretador ● un depurador ● un constructor de interfaz gráfica (GUI)
  • 45. 45 IDEs para Python ● Se recomienda: – Wing IDE 101 http://wingware.com/downloads/wingide-101 – PyCharm Educational Edition https://www.jetbrains.com/pycharm-educational/ – Spyder (viene incluído en Anaconda) https://github.com/spyder-ide/spyder ● Otros IDEs son: – PyDev + Eclipse – Komodo IDE – Ninja Procure que la codificación de sus archivos de texto sea UTF-8.
  • 48. 48 Spyder Viene incluído con el Anaconda https://www.spyder-ide.org/
  • 52. 52 Activando la codificación UTF-8 WingIDE 101: Edit -> Preferences Files -> Default Encoding Unicode (UTF - 8)
  • 53. 54 Referencias ● Wikipedia ● http://www.inventwithpython.com/ ● http://www.diveintopython3.net/ ● Documentación de Python: – https://docs.python.org/3/tutorial/index.html – https://docs.python.org/3/ ● Marzal Varó, Andrés; Gracia Luengo, Isabel; García Sevilla, Pedro (2014). Introducción a la programación con Python 3. Disponible en: http://dx.doi.org/10.6035/Sapientia93
  • 54. 55 Consejos ● Aprender a programar es una tarea que requiere perseverancia y paciencia. ● Estudiar con juicio el código fuente de otras personas es un excelente método de aprendizaje ya que así se descubren trucos y formas de programar. ● Aprenda a frecuentar los foros de programadores en internet (por ejemplo: https://stackoverflow.com/). Allí encontrará cientos de personas que lo pueden ayudar a resolver sus dudas.
  • 55. 56 Referencias ● Wikipedia ● http://www.inventwithpython.com/ ● http://www.diveintopython3.net/ ● Documentación de Python: – https://docs.python.org/3/tutorial/index.html – https://docs.python.org/3/ ● Marzal Varó, Andrés; Gracia Luengo, Isabel; García Sevilla, Pedro (2014). Introducción a la programación con Python 3. Disponible en: http://dx.doi.org/10.6035/Sapientia93