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

Python 101

  • 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 Afinales 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!!!
  • 5.
  • 6.
    Herramientas ● Aptana, Netbeans,IDLE, Anaconda. Sage (Software for Algebra and Geometry Experimentation)
  • 7.
    Sintaxis ● Se distinguenMayú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 notin 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): returna-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 asnp 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
  • 21.