SlideShare una empresa de Scribd logo
1 de 22
Python 101
1. Historia
2. Caracteristicas
3. Casos de éxito
4. ¿Por qué Python?
5. Herramientas
6. Sintaxis
8. Tipos de datos
8.1. Numeros
8.2. String
8.3. Boolean
8.4. Listas
8.5. Diccionarios
8.6. Tuplas
9. Operadores
9.1. Relacionales
9.2. Aritmeticos
9.3. Asignacion
9.4. Logicos
9.5. Pertenencia
10. Control de flujo
10.1. Condiciones
10.2. Bucles
13. I/O standard
14. Funciones
15. Import...
16. Numpy
Historia
Guido van Rossum
A finales de los 80’s
¿Por qué Python?
● Sencillo
● Fuertemente tipado
● Multiparadigma
● Tipado dinámico
● Facil integración con:
○ Java (Jython)
○ .NET (IronPython)
● Lenguaje de programación interpretado
● Aplicaciones:
○ Web (Django)
○ Física
○ Matematicas
○ Bioinformatica
FLOSS!!!
Casos de éxito
Herramientas
● Aptana, Netbeans, IDLE, Anaconda.
Sage (Software for Algebra and Geometry Experimentation)
Sintaxis
● Se distinguen Mayúsculas y minúsculas
● No se necesita carácter para indicar el fin de una
sentencia (;)
● Los bloques son especificados por indentación ({})
● La sentencia que define el inicio de un bloque finaliza
con dos puntos (:)
● # Esto es un comentario
● No es necesario declarar las variables.
Tipos de datos => Números
Enteros
Flotantes
Complejos
a = 10
b = 12345
c = 1.2345678901234567×10^N
d = 10.49
e = 4+7j
f = 34+67j
Límite:
Memoria
4.94065645841×10^-324 < N < 8.98846567431×10^307
Y hasta 17 cifras significativas
Conversión
int(‘10’)
Tipos de datos => Cadenas
Tipos de datos => Booleanos
a = “hola mundo” ⇔ ‘hola mundo’
a = True
b = False
Conversion
str(10)
Operadores => Relacionales
Operadores => Aritméticos
+
-
*
**
/
%
a = -2
b = 3
print a+b
print a-b
print a*b
print a**b
print a/b
print a%b
==
!=
<
<=
>
>=
a = -2
b = 3
print a==b
print a!=b
print a<b
print a<=b
print a>b
print a>=b
Operadores => Asignación
Operadores => Lógicos
=
+=
-=
i = 0
j = 10
while(i != j):
i+=1
j-=1
print “i = ” + str(i)
print “j = ” + str(j)
and ⇔ &
or ⇔ |
not ⇔ ~
a = true
b = false
if(a and b): #if(a & b)
print “No”
if(a or b): #if(a 1 b)
print “Ok”
if(not b): #if(~b)
print “No”
Operadores => Pertenencia
in
not in print a not in lista
a = 10
b = 20
lista = range(1,6)
print a in lista
I/O Standard
variable = raw_input(“Mensaje para el usuario”);
nombre = raw_input(“Nombre: ”)
edad = raw_input(“Ingrese edad”)
if(int(edad) < 18):
print nombre + “ eres menor de edad”
else:
print nombre + “ eres mayor de edad”
Control de flujo => Condiciones
if([condicion]):
[sentencia]
a = 12
b = 34
if(a<b):
print str(a)+”es menor que”+str(b)
if([condicion]):
[sentencia]
else:
[sentencia]
a,b = 23, 10
if(a < b):
print str(a)+”es menor que”+str(b)
else:
print str(a)+”es mayor que”+str(b)
if([condicion]):
[sentencia]
elif([condicion]):
[sentencia]
else:
[sentencia]
a,b = 23, 23
if(a < b):
print str(a)+”es menor que”+str(b)
elif(a == b):
print str(a)+”es igual a”+str(b)
else:
print str(a)+”es mayor que”+str(b)
Control de flujo => Bucles
while([condicion]):
[sentencia 1]
[sentencia 2]
[sentencia 3]
[sentencia 4]
...
edad = 1
while(edad<18):
print “¡Feliz cumpleaños!”
edad += 1
print “¡Feliz cumpleaños, eres mayor de edad!”
for i in [array]:
[sentencia 1]
[sentencia 2]
[sentencia 3]
[sentencia 4]
...
for i in range(18):
print “¡Feliz cumpleaños!”
print “¡Feliz cumpleaños, eres mayor de edad!”
Ejercicio: Picas y fijas
Tipos de datos => Listas
lista = [1, 2, 3, 4]
lista[0] #primer elemento
lista[:56] #toda la lista
lista[3:]
lista[3:6]
lista[:] #toda la lista
lista[0:2] = [] #borrar
len(lista) #tamaño
lista.append([1,2,3,4])
variable = []
Ejercicio: Producto escalar
Tipos de datos => Diccionarios
Tipos de datos => Tuplas
d = {‘nombre’: ‘sandra’, ‘apellido’: ‘guevara’}
print d['nombre']
print d.get(‘nombre’)
print d.has_key('nombre')
variable = {‘clave1’: ‘valor1’, ‘clave2’: ‘clave2’, ...}
t = (4, “Octubre”, 1.68, 45+10j)
print t[0]
variable = ([dato1], [datos2], [dato3], …)
t[2] = ‘Febrero’
len(t)
t = a,b,c
x,y,z = t
Ejercicio: Agenda
Funciones
def suma (a, b):
suma = a + b
return suma
print suma(4,6)
def nombreFuncion([parametros]):
[sentenciasFuncion]
return [expresion]
nombreFuncion(param1, param2,...)
Módulos
#calculadora.py
def resta(a, b):
return a-b
def division(a,b):
return a/b
import calculadora
print calculadora.resta(3,4)
Un módulo es un archivo que contiene definiciones y declaraciones de
Python. El nombre del archivo es el nombre del módulo con el sufijo .
py agregado.
from calculadora import division
print division(6,2)
from calculadora as calc
print calc.division(9,3)
Numpy
import numpy as np
a = np.arange(5)
a = np.zeros((2,3))
a = np.zeros((4,4), dtype=int)
np.dot(a, a)
m = np.matrix([[1,2,3],[4,5,7]])
np.transpose(m)
Matplotlib
SciPy
Gracias
Python 101

Más contenido relacionado

Similar a Python 101

Similar a Python 101 (20)

Gestión y Análisis de Datos para las Ciencias Económicas con Python y R
Gestión y Análisis de Datos para las Ciencias Económicas con Python y RGestión y Análisis de Datos para las Ciencias Económicas con Python y R
Gestión y Análisis de Datos para las Ciencias Económicas con Python y R
 
Python - Programación para machos
Python - Programación para machosPython - Programación para machos
Python - Programación para machos
 
Trabajar en el sector agroalimentario aragonés con datos y portales de datos ...
Trabajar en el sector agroalimentario aragonés con datos y portales de datos ...Trabajar en el sector agroalimentario aragonés con datos y portales de datos ...
Trabajar en el sector agroalimentario aragonés con datos y portales de datos ...
 
Programacion en python_1
Programacion en python_1Programacion en python_1
Programacion en python_1
 
Cpp
CppCpp
Cpp
 
Cpp
CppCpp
Cpp
 
data_collection-es.pptx
data_collection-es.pptxdata_collection-es.pptx
data_collection-es.pptx
 
introduccion de programacion
introduccion de programacionintroduccion de programacion
introduccion de programacion
 
programacion
programacionprogramacion
programacion
 
introduccion a programacion
introduccion a programacionintroduccion a programacion
introduccion a programacion
 
Introduccion a Python
Introduccion a PythonIntroduccion a Python
Introduccion a Python
 
Primeros pasos con Rust
Primeros pasos con RustPrimeros pasos con Rust
Primeros pasos con Rust
 
Taller I Coreis Python 10112009
Taller I Coreis Python 10112009Taller I Coreis Python 10112009
Taller I Coreis Python 10112009
 
Introduccion a Python por Facundo Batista
Introduccion a Python por Facundo BatistaIntroduccion a Python por Facundo Batista
Introduccion a Python por Facundo Batista
 
Fundamentosdeprogramacion 2
Fundamentosdeprogramacion 2Fundamentosdeprogramacion 2
Fundamentosdeprogramacion 2
 
Introduccion clips
Introduccion clipsIntroduccion clips
Introduccion clips
 
274420287 tipos-de-datos-en-c (1)
274420287 tipos-de-datos-en-c (1)274420287 tipos-de-datos-en-c (1)
274420287 tipos-de-datos-en-c (1)
 
Python Tutorial Presentation
Python Tutorial PresentationPython Tutorial Presentation
Python Tutorial Presentation
 
Por que java
Por que javaPor que java
Por que java
 
Python workshop
Python workshopPython workshop
Python workshop
 

Más de RedRITA

Propuesta en Gestión de Proyectos y Análisis de Negocios
 Propuesta en Gestión de Proyectos y Análisis de Negocios Propuesta en Gestión de Proyectos y Análisis de Negocios
Propuesta en Gestión de Proyectos y Análisis de NegociosRedRITA
 
El poder de la Gestión de Proyectos y su aporte al desarrollo del país: PMI, ...
El poder de la Gestión de Proyectos y su aporte al desarrollo del país: PMI, ...El poder de la Gestión de Proyectos y su aporte al desarrollo del país: PMI, ...
El poder de la Gestión de Proyectos y su aporte al desarrollo del país: PMI, ...RedRITA
 
Contexto académico nacional e internacional de la Gestión de Proyectos a nive...
Contexto académico nacional e internacional de la Gestión de Proyectos a nive...Contexto académico nacional e internacional de la Gestión de Proyectos a nive...
Contexto académico nacional e internacional de la Gestión de Proyectos a nive...RedRITA
 
Futuro de las TIC y Oportunidades en la Gestión de Proyectos para Empresarios...
Futuro de las TIC y Oportunidades en la Gestión de Proyectos para Empresarios...Futuro de las TIC y Oportunidades en la Gestión de Proyectos para Empresarios...
Futuro de las TIC y Oportunidades en la Gestión de Proyectos para Empresarios...RedRITA
 
Gestión de Proyectos de Inversión Nacional
Gestión de Proyectos de Inversión NacionalGestión de Proyectos de Inversión Nacional
Gestión de Proyectos de Inversión NacionalRedRITA
 
Acreditación Institucional
Acreditación InstitucionalAcreditación Institucional
Acreditación InstitucionalRedRITA
 
Diseño de Políticas y Desarrollo TI -FiTi-
Diseño de Políticas y Desarrollo TI -FiTi-Diseño de Políticas y Desarrollo TI -FiTi-
Diseño de Políticas y Desarrollo TI -FiTi-RedRITA
 
Javascript 101
Javascript 101Javascript 101
Javascript 101RedRITA
 

Más de RedRITA (8)

Propuesta en Gestión de Proyectos y Análisis de Negocios
 Propuesta en Gestión de Proyectos y Análisis de Negocios Propuesta en Gestión de Proyectos y Análisis de Negocios
Propuesta en Gestión de Proyectos y Análisis de Negocios
 
El poder de la Gestión de Proyectos y su aporte al desarrollo del país: PMI, ...
El poder de la Gestión de Proyectos y su aporte al desarrollo del país: PMI, ...El poder de la Gestión de Proyectos y su aporte al desarrollo del país: PMI, ...
El poder de la Gestión de Proyectos y su aporte al desarrollo del país: PMI, ...
 
Contexto académico nacional e internacional de la Gestión de Proyectos a nive...
Contexto académico nacional e internacional de la Gestión de Proyectos a nive...Contexto académico nacional e internacional de la Gestión de Proyectos a nive...
Contexto académico nacional e internacional de la Gestión de Proyectos a nive...
 
Futuro de las TIC y Oportunidades en la Gestión de Proyectos para Empresarios...
Futuro de las TIC y Oportunidades en la Gestión de Proyectos para Empresarios...Futuro de las TIC y Oportunidades en la Gestión de Proyectos para Empresarios...
Futuro de las TIC y Oportunidades en la Gestión de Proyectos para Empresarios...
 
Gestión de Proyectos de Inversión Nacional
Gestión de Proyectos de Inversión NacionalGestión de Proyectos de Inversión Nacional
Gestión de Proyectos de Inversión Nacional
 
Acreditación Institucional
Acreditación InstitucionalAcreditación Institucional
Acreditación Institucional
 
Diseño de Políticas y Desarrollo TI -FiTi-
Diseño de Políticas y Desarrollo TI -FiTi-Diseño de Políticas y Desarrollo TI -FiTi-
Diseño de Políticas y Desarrollo TI -FiTi-
 
Javascript 101
Javascript 101Javascript 101
Javascript 101
 

Último

ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IILauraFernandaValdovi
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfMIGUELANGELCONDORIMA4
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdfFernandaGarca788912
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdfFlorenciopeaortiz
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfDanielaVelasquez553560
 
SSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SSTSSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SSTGestorManpower
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptxGARCIARAMIREZCESAR
 
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.ariannytrading
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestajeffsalazarpuente
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones025ca20
 
TALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación públicaTALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación públicaSantiagoSanchez353883
 

Último (20)

ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo II
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdf
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdf
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdf
 
SSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SSTSSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SST
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
 
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuesta
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones
 
TALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación públicaTALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación pública
 

Python 101

  • 1.
  • 2. Python 101 1. Historia 2. Caracteristicas 3. Casos de éxito 4. ¿Por qué Python? 5. Herramientas 6. Sintaxis 8. Tipos de datos 8.1. Numeros 8.2. String 8.3. Boolean 8.4. Listas 8.5. Diccionarios 8.6. Tuplas 9. Operadores 9.1. Relacionales 9.2. Aritmeticos 9.3. Asignacion 9.4. Logicos 9.5. Pertenencia 10. Control de flujo 10.1. Condiciones 10.2. Bucles 13. I/O standard 14. Funciones 15. Import... 16. Numpy
  • 3. Historia Guido van Rossum A finales de los 80’s
  • 4. ¿Por qué Python? ● Sencillo ● Fuertemente tipado ● Multiparadigma ● Tipado dinámico ● Facil integración con: ○ Java (Jython) ○ .NET (IronPython) ● Lenguaje de programación interpretado ● Aplicaciones: ○ Web (Django) ○ Física ○ Matematicas ○ Bioinformatica FLOSS!!!
  • 6. Herramientas ● Aptana, Netbeans, IDLE, Anaconda. Sage (Software for Algebra and Geometry Experimentation)
  • 7. Sintaxis ● Se distinguen Mayúsculas y minúsculas ● No se necesita carácter para indicar el fin de una sentencia (;) ● Los bloques son especificados por indentación ({}) ● La sentencia que define el inicio de un bloque finaliza con dos puntos (:) ● # Esto es un comentario ● No es necesario declarar las variables.
  • 8. Tipos de datos => Números Enteros Flotantes Complejos a = 10 b = 12345 c = 1.2345678901234567×10^N d = 10.49 e = 4+7j f = 34+67j Límite: Memoria 4.94065645841×10^-324 < N < 8.98846567431×10^307 Y hasta 17 cifras significativas Conversión int(‘10’)
  • 9. Tipos de datos => Cadenas Tipos de datos => Booleanos a = “hola mundo” ⇔ ‘hola mundo’ a = True b = False Conversion str(10)
  • 10. Operadores => Relacionales Operadores => Aritméticos + - * ** / % a = -2 b = 3 print a+b print a-b print a*b print a**b print a/b print a%b == != < <= > >= a = -2 b = 3 print a==b print a!=b print a<b print a<=b print a>b print a>=b
  • 11. Operadores => Asignación Operadores => Lógicos = += -= i = 0 j = 10 while(i != j): i+=1 j-=1 print “i = ” + str(i) print “j = ” + str(j) and ⇔ & or ⇔ | not ⇔ ~ a = true b = false if(a and b): #if(a & b) print “No” if(a or b): #if(a 1 b) print “Ok” if(not b): #if(~b) print “No”
  • 12. Operadores => Pertenencia in not in print a not in lista a = 10 b = 20 lista = range(1,6) print a in lista
  • 13. I/O Standard variable = raw_input(“Mensaje para el usuario”); nombre = raw_input(“Nombre: ”) edad = raw_input(“Ingrese edad”) if(int(edad) < 18): print nombre + “ eres menor de edad” else: print nombre + “ eres mayor de edad”
  • 14. Control de flujo => Condiciones if([condicion]): [sentencia] a = 12 b = 34 if(a<b): print str(a)+”es menor que”+str(b) if([condicion]): [sentencia] else: [sentencia] a,b = 23, 10 if(a < b): print str(a)+”es menor que”+str(b) else: print str(a)+”es mayor que”+str(b) if([condicion]): [sentencia] elif([condicion]): [sentencia] else: [sentencia] a,b = 23, 23 if(a < b): print str(a)+”es menor que”+str(b) elif(a == b): print str(a)+”es igual a”+str(b) else: print str(a)+”es mayor que”+str(b)
  • 15. Control de flujo => Bucles while([condicion]): [sentencia 1] [sentencia 2] [sentencia 3] [sentencia 4] ... edad = 1 while(edad<18): print “¡Feliz cumpleaños!” edad += 1 print “¡Feliz cumpleaños, eres mayor de edad!” for i in [array]: [sentencia 1] [sentencia 2] [sentencia 3] [sentencia 4] ... for i in range(18): print “¡Feliz cumpleaños!” print “¡Feliz cumpleaños, eres mayor de edad!” Ejercicio: Picas y fijas
  • 16. Tipos de datos => Listas lista = [1, 2, 3, 4] lista[0] #primer elemento lista[:56] #toda la lista lista[3:] lista[3:6] lista[:] #toda la lista lista[0:2] = [] #borrar len(lista) #tamaño lista.append([1,2,3,4]) variable = [] Ejercicio: Producto escalar
  • 17. Tipos de datos => Diccionarios Tipos de datos => Tuplas d = {‘nombre’: ‘sandra’, ‘apellido’: ‘guevara’} print d['nombre'] print d.get(‘nombre’) print d.has_key('nombre') variable = {‘clave1’: ‘valor1’, ‘clave2’: ‘clave2’, ...} t = (4, “Octubre”, 1.68, 45+10j) print t[0] variable = ([dato1], [datos2], [dato3], …) t[2] = ‘Febrero’ len(t) t = a,b,c x,y,z = t Ejercicio: Agenda
  • 18. Funciones def suma (a, b): suma = a + b return suma print suma(4,6) def nombreFuncion([parametros]): [sentenciasFuncion] return [expresion] nombreFuncion(param1, param2,...)
  • 19. Módulos #calculadora.py def resta(a, b): return a-b def division(a,b): return a/b import calculadora print calculadora.resta(3,4) Un módulo es un archivo que contiene definiciones y declaraciones de Python. El nombre del archivo es el nombre del módulo con el sufijo . py agregado. from calculadora import division print division(6,2) from calculadora as calc print calc.division(9,3)
  • 20. Numpy import numpy as np a = np.arange(5) a = np.zeros((2,3)) a = np.zeros((4,4), dtype=int) np.dot(a, a) m = np.matrix([[1,2,3],[4,5,7]]) np.transpose(m) Matplotlib SciPy