SlideShare una empresa de Scribd logo
1 de 25
H
INTRODUCCIÓN A
PYTHON
Juan Ignacio Rodríguez de León
jileon en twitter
euribates @ gmail.com
Breve historia de Python
● Creado a finales de los 80 por el Holandés Guido
Van Rossum.
● Deriva de un lenguaje previo llamado ABC.
● El objetivo era un lenguaje de programación de alto
nivel, con una sintaxis muy limpia, fácil de leer y
multiplataforma.
● Con soporte para distintos estilos de programación:
Imperativa, orientada a objetos y funcional.
● El nombre proviene del grupo de humor inglés Monty
Python, no de la serpiente.
Monty Python Flying Circus
Python 2.7 o Python 3.x
● Python 3.x no es compatible hacia atrás con
Python 2.7
● Muchos módulos de terceros aun no han
migrado a Python 3.x
● Python 2.7 es el “paso natural”: con leves
modificaciones es capaz de ejecutar código
2.7 o código 3.x
● En este taller usaremos Python 2.7
¿Por qué Python?
● Desarrollo rápido
● Sencillo pero potente
● Fácil de leer
● Software abierto
● No se entromete (Entre tú y el problema)
● Interpretado (Pero también compilado)
● Fácil de extender
– Librerías estándar
– Paquetes externos
Dasarrollo rápido
● Lenguaje de alto nivel
● Desarrollo de prototipos
● Herramientas de análisis de
rendimiento
● Facilidad para reescribir las
partes críticas en otros
lenguajes
Plan to throw one away. You will anyway
-- Fred Brooks, The Mythical Man-Month
Lo que el cliente necesita
Sencillo pero potente
Es un lenguaje compacto
New Hacker's Dictionary
http://www.catb.org/~esr/jargon/html/C/compact.html
compacto adj. Dicho de un diseño, describe la
deseable propiedad de poder ser aprehendido
de una vez en la cabeza de uno.
El ser compacto no implica trivialidad o falta de
potencia: Por ejemplo, el lenguaje C es más compacto
que Fortran, y a la vez, más potente.
Fácil de leer
Programs must be
written for people to
read, and only
incidentally for
machines to execute.
-- Abelson & Sussman, Structure and
Interpretation of Computer Programs
¿Qué hace este programa?
lista = [7, 23, 44, -2, 52]
suma = 0.0
for i in lista:
suma = suma + i
m = suma/len(lista)
print("Promedio:", m)
lista = [7, 23, 44, -2, 52]
suma = 0.0
for i in lista:
suma = suma + i
m = suma/len(lista)
print("Promedio:", m)
Una versión más corta
lista = [7, 23, 44, -2, 52]
print("Promedio:", sum(lista)/len(lista))
lista = [7, 23, 44, -2, 52]
print("Promedio:", sum(lista)/len(lista))
Software Libre
● Menos errores: Con los suficientes ojos, todos
los errores son obvios (Ley de Linus)
● Más facilidad de desarrollo de módulos,
extensiones y sistemas paralelos
● Sin puertas traseras y más seguro
● Crecimiento exponencial
● Etc...
No se entromete (Entre el problema y tu)
http://en.wikipedia.org/wiki/Rube_Goldberg
Para qué no es bueno Python
● Desarrollo a bajo nivel ("Cerca de la máquina"),
como drivers, kernels o sobre hardware limitado.
● Aplicaciones que requieran sobre todo alta
capacidad de cómputo, o en las que sea crítico
obtener el máximo rendimiento.
● Aplicaciones multi-thread sobre sistemas con
múltiples procesadores.
– pueden tener problemas de rendimiento si no se tienen en
cuenta las restricciones que impone el GIL.
Python como calculadora
Abrimos una terminal:
● [Control] + [Alt] + [T] si estamos en Linux
● [Windows] + [R] en Windows o si no funciona Inicio
→todos los programas → Accesorios → Símbolo de
sistema.
● [Ctrl] + [SpaceBar] y escribir term en MAC OS/X
Escribimos python + [Enter]
La Shell de Python
Cosas a probar en la shell
import this
help()
dir()
help(dir)
2+3
2**2000
7>2
exit()
import this
help()
dir()
help(dir)
2+3
2**2000
7>2
exit()
El programa “Hola, Mundo”
● Ejemplo habitual cuando
aprendemos un nuevo lenguaje.
● El programa más sencillo
posible capaz de hacer algo.
● Normalmente escribir el texto
"hola mundo"
● La tradición se remonta a “The C
Programming Language”, de
Brian Kernighan y Dennis
Ritchie
Hola, mundo, versión Java
class HolaMundo {
public static void main (String args[]) {
System.out.print("Hola, Mundon");
}
}
class HolaMundo {
public static void main (String args[]) {
System.out.print("Hola, Mundon");
}
}
Hola, mundo, version C#
using System;
class Program
{
public static void Main()
{
Console.WriteLine("Hello, world!");
}
}
using System;
class Program
{
public static void Main()
{
Console.WriteLine("Hello, world!");
}
}
Hola, Mundo versión COBOL
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
PROCEDURE DIVISION.
DISPLAY 'Hello, world!'.
STOP RUN.
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
PROCEDURE DIVISION.
DISPLAY 'Hello, world!'.
STOP RUN.
Hola, mundo, version Python
print(“Hola, Mundo”)print(“Hola, Mundo”)
Zen del lenguaje Python (1)
‣ Bello es mejor que feo
‣ Explícito es mejor que implícito
‣ Simple es mejor que complejo
‣ Complejo es mejor que complicado
‣ Plano es mejor que anidado
‣ Disperso es mejor que denso
‣ La legibilidad cuenta
‣ Los casos especiales no son tan especiales
como para quebrantar las reglas
‣ Aunque lo práctico gana a la pureza
Zen del lenguaje Python (2)
‣ Los errores nunca deberían dejarse pasar
silenciosamente
‣ A menos que hayan sido silenciados
explícitamente
‣ Frente a la ambigüedad, rechaza la tentación
de adivinar
‣ Debería haber una -y preferiblemente sólo
una- manera obvia de hacerlo
‣ Aunque esa manera puede no ser obvia al
principio a menos que usted sea holandés
Zen de Python (3)
‣ Ahora es mejor que nunca
‣ Aunque nunca es a menudo mejor que ya
mismo
‣ Si la implementación es difícil de explicar,
es una mala idea
‣ Si la implementación es fácil de explicar,
puede que sea una buena idea
‣ Los espacios de nombres (namespaces) son
una gran idea ¡Hagamos más de esas cosas!

Más contenido relacionado

La actualidad más candente

Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de software
monik1002
 
Programacion estructurado
Programacion estructuradoProgramacion estructurado
Programacion estructurado
Agapito26
 

La actualidad más candente (13)

DISEÑO DE BASES DE DATOS DISTRIBUIDAS
DISEÑO DE BASES DE DATOS DISTRIBUIDASDISEÑO DE BASES DE DATOS DISTRIBUIDAS
DISEÑO DE BASES DE DATOS DISTRIBUIDAS
 
PHP
PHPPHP
PHP
 
Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Python
 
ESTRUCTURA DE UN PROYECTO EN ANDROID STUDIO
ESTRUCTURA DE UN PROYECTO EN ANDROID STUDIOESTRUCTURA DE UN PROYECTO EN ANDROID STUDIO
ESTRUCTURA DE UN PROYECTO EN ANDROID STUDIO
 
Modulos en Python
Modulos en PythonModulos en Python
Modulos en Python
 
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
 
Lenguaje de Programación Ruby
Lenguaje de Programación RubyLenguaje de Programación Ruby
Lenguaje de Programación Ruby
 
Lenguaje de programacion ruby
Lenguaje de programacion rubyLenguaje de programacion ruby
Lenguaje de programacion ruby
 
Comando ls - metacaracteres
Comando ls - metacaracteresComando ls - metacaracteres
Comando ls - metacaracteres
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de software
 
Programacion estructurado
Programacion estructuradoProgramacion estructurado
Programacion estructurado
 
Estimación de Proyectos de Software
Estimación de Proyectos de SoftwareEstimación de Proyectos de Software
Estimación de Proyectos de Software
 
3 Variables LingüíSticas, Variables Difusas Y Reglas Difusas
3 Variables LingüíSticas, Variables Difusas Y Reglas Difusas3 Variables LingüíSticas, Variables Difusas Y Reglas Difusas
3 Variables LingüíSticas, Variables Difusas Y Reglas Difusas
 

Destacado

Django avanzado: Dia 2
Django avanzado: Dia 2Django avanzado: Dia 2
Django avanzado: Dia 2
Esau Rodriguez
 
Lesson 7 data communication
Lesson 7 data communicationLesson 7 data communication
Lesson 7 data communication
kenjiecueto
 
Vision moral y economica de la empresarialidad
Vision moral y economica de la empresarialidadVision moral y economica de la empresarialidad
Vision moral y economica de la empresarialidad
Jose Luis Tapia
 
Sektörden Haberler Emarsys Ağustos 2013
Sektörden Haberler Emarsys Ağustos 2013Sektörden Haberler Emarsys Ağustos 2013
Sektörden Haberler Emarsys Ağustos 2013
Emarsys Türkçe
 

Destacado (20)

01 el lenguaje Python
01 el lenguaje Python01 el lenguaje Python
01 el lenguaje Python
 
¡A todo Kanban! ~ Introducción a kanban
¡A todo Kanban! ~ Introducción a kanban¡A todo Kanban! ~ Introducción a kanban
¡A todo Kanban! ~ Introducción a kanban
 
Taller de introducción al desarrollo web con Django
Taller de introducción al desarrollo web con DjangoTaller de introducción al desarrollo web con Django
Taller de introducción al desarrollo web con Django
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios web
 
Kata Tenis Completa Paso a Paso. Python Sevilla 30/11/2012
Kata Tenis Completa Paso a Paso. Python Sevilla 30/11/2012Kata Tenis Completa Paso a Paso. Python Sevilla 30/11/2012
Kata Tenis Completa Paso a Paso. Python Sevilla 30/11/2012
 
Django Avanzado: Dia3
Django Avanzado: Dia3Django Avanzado: Dia3
Django Avanzado: Dia3
 
Presentación appy/pod
Presentación appy/podPresentación appy/pod
Presentación appy/pod
 
Django avanzado: Dia 2
Django avanzado: Dia 2Django avanzado: Dia 2
Django avanzado: Dia 2
 
Django avanzado: Dia1
Django avanzado: Dia1Django avanzado: Dia1
Django avanzado: Dia1
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademy
 
Desarollando aplicaciones móviles con Python y Android
Desarollando aplicaciones móviles con Python y AndroidDesarollando aplicaciones móviles con Python y Android
Desarollando aplicaciones móviles con Python y Android
 
Publicacion ranking junio 2013
Publicacion ranking junio 2013Publicacion ranking junio 2013
Publicacion ranking junio 2013
 
Answering Your Questions on Social Media Consulting (Alexis Grant)
Answering Your Questions on Social Media Consulting (Alexis Grant)Answering Your Questions on Social Media Consulting (Alexis Grant)
Answering Your Questions on Social Media Consulting (Alexis Grant)
 
Jornada mundial del enfermo 2011
Jornada mundial del enfermo 2011Jornada mundial del enfermo 2011
Jornada mundial del enfermo 2011
 
Lesson 7 data communication
Lesson 7 data communicationLesson 7 data communication
Lesson 7 data communication
 
Lectura de apoyo 1 la práctica de la innovación en las empresas de servicios
Lectura de apoyo 1 la práctica de la innovación en las empresas de serviciosLectura de apoyo 1 la práctica de la innovación en las empresas de servicios
Lectura de apoyo 1 la práctica de la innovación en las empresas de servicios
 
Vision moral y economica de la empresarialidad
Vision moral y economica de la empresarialidadVision moral y economica de la empresarialidad
Vision moral y economica de la empresarialidad
 
Calidad, Qué puedo hacer?
Calidad, Qué puedo hacer?Calidad, Qué puedo hacer?
Calidad, Qué puedo hacer?
 
BHW Solicitors
BHW SolicitorsBHW Solicitors
BHW Solicitors
 
Sektörden Haberler Emarsys Ağustos 2013
Sektörden Haberler Emarsys Ağustos 2013Sektörden Haberler Emarsys Ağustos 2013
Sektörden Haberler Emarsys Ağustos 2013
 

Similar a 00 introducción a Python

Presentacion: ¿Que es Compilador?
Presentacion: ¿Que es Compilador?  Presentacion: ¿Que es Compilador?
Presentacion: ¿Que es Compilador?
Luis Stifler
 
Resolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusResolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplus
Abefo
 
Unidad Iii Generalidades Sobre Algoritmos
Unidad Iii Generalidades Sobre AlgoritmosUnidad Iii Generalidades Sobre Algoritmos
Unidad Iii Generalidades Sobre Algoritmos
marthaill10
 

Similar a 00 introducción a Python (20)

Introducción
IntroducciónIntroducción
Introducción
 
Presentacion: ¿Que es Compilador?
Presentacion: ¿Que es Compilador?  Presentacion: ¿Que es Compilador?
Presentacion: ¿Que es Compilador?
 
Manual de python
Manual de pythonManual de python
Manual de python
 
Introduccion Python
Introduccion PythonIntroduccion Python
Introduccion Python
 
Introducción a python
Introducción a pythonIntroducción a python
Introducción a python
 
Atix05
Atix05Atix05
Atix05
 
python-para-todos.pdf
python-para-todos.pdfpython-para-todos.pdf
python-para-todos.pdf
 
Python para todos
Python para todosPython para todos
Python para todos
 
Python para Todos
Python para TodosPython para Todos
Python para Todos
 
python-para-todos.pdf
python-para-todos.pdfpython-para-todos.pdf
python-para-todos.pdf
 
Python para todos
Python para todosPython para todos
Python para todos
 
Libro python para todos
Libro   python para todosLibro   python para todos
Libro python para todos
 
Python para todos
Python para todosPython para todos
Python para todos
 
Python_para_todos.pdf
Python_para_todos.pdfPython_para_todos.pdf
Python_para_todos.pdf
 
Python_para_todos.pdf
Python_para_todos.pdfPython_para_todos.pdf
Python_para_todos.pdf
 
Lenguaje de programacion java
Lenguaje de programacion javaLenguaje de programacion java
Lenguaje de programacion java
 
Resolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusResolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplus
 
Resolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusResolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplus
 
Unidad Iii Generalidades Sobre Algoritmos
Unidad Iii Generalidades Sobre AlgoritmosUnidad Iii Generalidades Sobre Algoritmos
Unidad Iii Generalidades Sobre Algoritmos
 
SILDESHARE.pdf
SILDESHARE.pdfSILDESHARE.pdf
SILDESHARE.pdf
 

Más de Juan Rodríguez

Más de Juan Rodríguez (16)

Estados imposibles y como evitarlos
Estados imposibles y como evitarlosEstados imposibles y como evitarlos
Estados imposibles y como evitarlos
 
Introduction to BDD (Behavior-Driven Development)
Introduction to BDD (Behavior-Driven Development)Introduction to BDD (Behavior-Driven Development)
Introduction to BDD (Behavior-Driven Development)
 
Vue.js: El framework javascript para muggles
Vue.js: El framework javascript para mugglesVue.js: El framework javascript para muggles
Vue.js: El framework javascript para muggles
 
Introducción a jupyter (antes i python notebook)
Introducción a jupyter (antes i python notebook)Introducción a jupyter (antes i python notebook)
Introducción a jupyter (antes i python notebook)
 
Acceder a C desde Python (O viceversa)
Acceder a C desde Python (O viceversa)Acceder a C desde Python (O viceversa)
Acceder a C desde Python (O viceversa)
 
Viaje al centro de la locura con Javascript
Viaje al centro de la locura con JavascriptViaje al centro de la locura con Javascript
Viaje al centro de la locura con Javascript
 
Una imagen vale más que mil mentiras
Una imagen vale más que mil mentirasUna imagen vale más que mil mentiras
Una imagen vale más que mil mentiras
 
Introducción a DSL (Lenguajes Específicos de Dominios) con Python
Introducción a DSL (Lenguajes Específicos de Dominios) con PythonIntroducción a DSL (Lenguajes Específicos de Dominios) con Python
Introducción a DSL (Lenguajes Específicos de Dominios) con Python
 
Presentación estetoscopio
Presentación estetoscopioPresentación estetoscopio
Presentación estetoscopio
 
Charla introducción a RaspberryPI
Charla introducción a RaspberryPICharla introducción a RaspberryPI
Charla introducción a RaspberryPI
 
Guia (breve) de supervivencia a python 3
Guia (breve) de supervivencia a python 3Guia (breve) de supervivencia a python 3
Guia (breve) de supervivencia a python 3
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional
 
Presentacion Google Mini Adeje 16 Oct 2008
Presentacion Google Mini Adeje 16 Oct 2008Presentacion Google Mini Adeje 16 Oct 2008
Presentacion Google Mini Adeje 16 Oct 2008
 
Algunos recursos para desarrollo Web
Algunos recursos para desarrollo WebAlgunos recursos para desarrollo Web
Algunos recursos para desarrollo Web
 
Hojas de estilo CSS (Cascade Style Sheets)
Hojas de estilo CSS (Cascade Style Sheets)Hojas de estilo CSS (Cascade Style Sheets)
Hojas de estilo CSS (Cascade Style Sheets)
 
Extranet Parlamento
Extranet ParlamentoExtranet Parlamento
Extranet Parlamento
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (10)

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

00 introducción a Python

  • 1. H INTRODUCCIÓN A PYTHON Juan Ignacio Rodríguez de León jileon en twitter euribates @ gmail.com
  • 2. Breve historia de Python ● Creado a finales de los 80 por el Holandés Guido Van Rossum. ● Deriva de un lenguaje previo llamado ABC. ● El objetivo era un lenguaje de programación de alto nivel, con una sintaxis muy limpia, fácil de leer y multiplataforma. ● Con soporte para distintos estilos de programación: Imperativa, orientada a objetos y funcional. ● El nombre proviene del grupo de humor inglés Monty Python, no de la serpiente.
  • 4. Python 2.7 o Python 3.x ● Python 3.x no es compatible hacia atrás con Python 2.7 ● Muchos módulos de terceros aun no han migrado a Python 3.x ● Python 2.7 es el “paso natural”: con leves modificaciones es capaz de ejecutar código 2.7 o código 3.x ● En este taller usaremos Python 2.7
  • 5. ¿Por qué Python? ● Desarrollo rápido ● Sencillo pero potente ● Fácil de leer ● Software abierto ● No se entromete (Entre tú y el problema) ● Interpretado (Pero también compilado) ● Fácil de extender – Librerías estándar – Paquetes externos
  • 6. Dasarrollo rápido ● Lenguaje de alto nivel ● Desarrollo de prototipos ● Herramientas de análisis de rendimiento ● Facilidad para reescribir las partes críticas en otros lenguajes Plan to throw one away. You will anyway -- Fred Brooks, The Mythical Man-Month
  • 7. Lo que el cliente necesita
  • 8. Sencillo pero potente Es un lenguaje compacto New Hacker's Dictionary http://www.catb.org/~esr/jargon/html/C/compact.html compacto adj. Dicho de un diseño, describe la deseable propiedad de poder ser aprehendido de una vez en la cabeza de uno. El ser compacto no implica trivialidad o falta de potencia: Por ejemplo, el lenguaje C es más compacto que Fortran, y a la vez, más potente.
  • 9. Fácil de leer Programs must be written for people to read, and only incidentally for machines to execute. -- Abelson & Sussman, Structure and Interpretation of Computer Programs
  • 10. ¿Qué hace este programa? lista = [7, 23, 44, -2, 52] suma = 0.0 for i in lista: suma = suma + i m = suma/len(lista) print("Promedio:", m) lista = [7, 23, 44, -2, 52] suma = 0.0 for i in lista: suma = suma + i m = suma/len(lista) print("Promedio:", m)
  • 11. Una versión más corta lista = [7, 23, 44, -2, 52] print("Promedio:", sum(lista)/len(lista)) lista = [7, 23, 44, -2, 52] print("Promedio:", sum(lista)/len(lista))
  • 12. Software Libre ● Menos errores: Con los suficientes ojos, todos los errores son obvios (Ley de Linus) ● Más facilidad de desarrollo de módulos, extensiones y sistemas paralelos ● Sin puertas traseras y más seguro ● Crecimiento exponencial ● Etc...
  • 13. No se entromete (Entre el problema y tu) http://en.wikipedia.org/wiki/Rube_Goldberg
  • 14. Para qué no es bueno Python ● Desarrollo a bajo nivel ("Cerca de la máquina"), como drivers, kernels o sobre hardware limitado. ● Aplicaciones que requieran sobre todo alta capacidad de cómputo, o en las que sea crítico obtener el máximo rendimiento. ● Aplicaciones multi-thread sobre sistemas con múltiples procesadores. – pueden tener problemas de rendimiento si no se tienen en cuenta las restricciones que impone el GIL.
  • 15. Python como calculadora Abrimos una terminal: ● [Control] + [Alt] + [T] si estamos en Linux ● [Windows] + [R] en Windows o si no funciona Inicio →todos los programas → Accesorios → Símbolo de sistema. ● [Ctrl] + [SpaceBar] y escribir term en MAC OS/X Escribimos python + [Enter]
  • 16. La Shell de Python
  • 17. Cosas a probar en la shell import this help() dir() help(dir) 2+3 2**2000 7>2 exit() import this help() dir() help(dir) 2+3 2**2000 7>2 exit()
  • 18. El programa “Hola, Mundo” ● Ejemplo habitual cuando aprendemos un nuevo lenguaje. ● El programa más sencillo posible capaz de hacer algo. ● Normalmente escribir el texto "hola mundo" ● La tradición se remonta a “The C Programming Language”, de Brian Kernighan y Dennis Ritchie
  • 19. Hola, mundo, versión Java class HolaMundo { public static void main (String args[]) { System.out.print("Hola, Mundon"); } } class HolaMundo { public static void main (String args[]) { System.out.print("Hola, Mundon"); } }
  • 20. Hola, mundo, version C# using System; class Program { public static void Main() { Console.WriteLine("Hello, world!"); } } using System; class Program { public static void Main() { Console.WriteLine("Hello, world!"); } }
  • 21. Hola, Mundo versión COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world!'. STOP RUN. IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world!'. STOP RUN.
  • 22. Hola, mundo, version Python print(“Hola, Mundo”)print(“Hola, Mundo”)
  • 23. Zen del lenguaje Python (1) ‣ Bello es mejor que feo ‣ Explícito es mejor que implícito ‣ Simple es mejor que complejo ‣ Complejo es mejor que complicado ‣ Plano es mejor que anidado ‣ Disperso es mejor que denso ‣ La legibilidad cuenta ‣ Los casos especiales no son tan especiales como para quebrantar las reglas ‣ Aunque lo práctico gana a la pureza
  • 24. Zen del lenguaje Python (2) ‣ Los errores nunca deberían dejarse pasar silenciosamente ‣ A menos que hayan sido silenciados explícitamente ‣ Frente a la ambigüedad, rechaza la tentación de adivinar ‣ Debería haber una -y preferiblemente sólo una- manera obvia de hacerlo ‣ Aunque esa manera puede no ser obvia al principio a menos que usted sea holandés
  • 25. Zen de Python (3) ‣ Ahora es mejor que nunca ‣ Aunque nunca es a menudo mejor que ya mismo ‣ Si la implementación es difícil de explicar, es una mala idea ‣ Si la implementación es fácil de explicar, puede que sea una buena idea ‣ Los espacios de nombres (namespaces) son una gran idea ¡Hagamos más de esas cosas!