Conociendo
Andrés Chávez Ulfe
P: ¿Qué problema intenta resolver?
R: La productividad del programador
Mi observación en ese momento era que las computadoras se volvían más rápidas y baratas a un ritmo increíble (...) [Pero] el costo de los programadores para programarlas se mantenía bajo. (Guido van Rossum, 2008)
Python se puede utilizar en diferentes campos, como:
Desarrollo Web
Administración de Sistemas
Desarrollo de Videojuegos
Modelamiento 3D
Testing
Análisis de información
Basta con echar un vistazo
from package import attribute_method
def saludo(name=None):
if name is not None:
print "Hola Ica! soy " + name
else:
print "Hola Ica!"
saludo("Andres")
Python es de código abierto y libre.
Esto significa que usted puede obtener el código fuente cambiarlo como sea necesario
y redistribuirlo.
La gente puede encontrar errores y corregirlos más rápido.
Puedes usar Python en:
Python es soportado actualmente en:
Compilación ...
como la filosofía!
(Tim Peters, 2004)
Python 2.7.10 (default, Aug 22 2015, 20:33:39)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import this
como la filosofía!
Hermoso 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.
Escaso es mejor que denso.
La legibilidad cuenta.
Los casos especiales no son lo suficientemente especiales como para romper las reglas.
Lo práctico supera a la pureza.
Los errores nunca deben pasar en silencio.
A menos que sean silenciados.
Ante 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 seas holandés.
Ahora es mejor que nunca.
Aunque "nunca" es a menudo mejor que "ahora mismo".
Si la aplicación es difícil de explicar, es una mala idea.
Si la aplicación es fácil de explicar, puede ser una buena idea.
Los Namespaces son una gran idea ¡hay a hacer más de esos!
PEP 0008 - Guía de estilo para el código de Python
Hola mundo
print 'Hola mundo'
Variables
# Comentarios
var_number = 10
var_decimal = 3.14
var_text = 'Hola mundo'
var_bool = True
Funciones
def suma(a, b):
return a + b
Clases
class Vehiculo(object):
pos_x = 0
pos_y = 0
def mover(self, x, y):
self.pos_x += x
self.pos_y += y
return self.pos_x, self.pos_y
carro = Vehiculo()
carro.mover(10, -5)
carro.mover(0, 5)
carro.mover(-10, 0)
Tipado Dinámico
>>> a = 'Hola mundo'
>>> type(a)
<type 'str'>
>>> a = 123
>>> type(a)
<type 'int'>
>>> b = '456'
>>> type(b)
<type 'str'>
>>> a + b
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Ordenamiento simple
a, b = 'uno', 'dos'
b, a = a, b
Cadenas de texto
>>> 'texto' + 'con' + 'texto'
'textocontexto'
>>> """texto
de multiples
lineas"""
'texto\n de multiples\n lineas'
Formato de cadenas
>>> u'Suma: %d %s %f %s %.2f' % (1, '+', 1.5, '=', 1+1)
u'Suma: 1 + 1.500000 = 2.00'
Listas y Tuplas
>>> [1,2,3] + [4,5,6]
[1, 2, 3, 4, 5, 6]
>>> lista = []
>>> lista.append('a')
>>> lista += [1]
lista
['a', 1]
>>> lista[0]
'a'
>>> 1 in lista
True
>>> lista.pop(1)
1
>>> 1 in lista
False
>>> (1,2,3) + (4,5,6)
(1, 2, 3, 4, 5, 6)
>>> tupla = ('a',)
>>> tupla.append(1)
AttributeError: 'tuple' object
has no attribute 'append'
>>> tupla += (1,)
>>> tupla
('a', 1)
>>> tupla = ('a', 1)
>>> tupla[0]
'a'
>>> 1 in tupla
True
>>> list(tupla)
['a', 1]
Diccionarios
>>> dict = {}
>>> color_dict = {'azul': '#0000FF', 'naranja': '#FFA500'}
>>> fruit_dict = {'manzana': 'apple', 'naranja': 'orange'}
>>> color_dict['azul']
'#0000FF'
>>> color_dict['naranja'] == fruit_dict['naranja']
False
>>> color_dict.keys()
['azul', 'naranja']
>>> color_dict.values()
['#0000FF', '#FFA500']
>>> color_dict.items()
[('azul', '#0000FF'), ('naranja', '#FFA500')]
Módulos
# funciones.py
def suma(a, b):
return a + b
def resta(a, b):
return a - b
def multiplicacion(a, b):
return a * b
def division(a, b):
return a / b
import funciones
funciones.suma(3, 4)
from funciones import suma
suma(3, 4)
from funciones import suma as mas
mas(3, 4)
from funciones import suma, resta
resta(4, 3)
from funciones import (suma,
division, multiplicacion)
import module
Dudas o consultas:
Slides: