Este documento proporciona una introducción a Python, incluyendo su historia, tipos de datos básicos, operadores, estructuras de control, funciones, objetos y excepciones. Se explican conceptos como listas, diccionarios, módulos, paquetes, herencia y polimorfismo.
2. ¿Qué es Python?¿Qué es Python?
● Guido van Rossum
● Lenguaje interpretado
● Multiparadigma.- orientado a objetos, imperativo y funcional.
● Multiplataforma
● Tipado dinámico y fuerte
● Sintáxis limpia con indentación
● Pilas ya cargadas
● Opensource
4. ImplementacionesImplementaciones
● Cpython.- compila a bytecode, para ser interpretado, para
ser ejecutado en la virtual machine.
● Jython.- compila codigo python a Java bytecode, para ser
ejecutado en JVM.
● IronPython.- Python para .Net
● Pypy.- Python sobre python.
8. Operadores de AsignaciónOperadores de Asignación
● = asigna valor
a = 12
● +=
a += 5
● -=
a -= 15
● *=
a *= 3
● /=
a /= 2
● **=
a **= 3
● //=
a //= 10
13. Operadores corto circuitoOperadores corto circuito
● Javascript:
persona = true;
if (persona) {
var nombre = “Juan Perez”;
}
var nombre = persona && “Juan Perez”;
//nombre = false;
if (nombre) {
var encargado = nombre;
} else {
var encargado = "Algún nombre";
}
var encargado = nombre || "Algun
nombre";
● Python:
persona = True
if persona:
nombre = 'Juan Perez'
nombre = persona and 'Juan Perez'
#nombre = False
if nombre:
encargado = nombre
else:
encargado = 'Algun nombre'
encargado = nombre or 'Algun
nombre'
14. IterativosIterativos
● while
while x <= 10:
print x
● for-in
for x in range(10):
print x
● break
for x in range(10):
if x == 2:
break
● continue
for x in “abac”:
if x != “a”:
continue
nuevo += x
15. Tipos estructuradosTipos estructurados
● Listas
lista = [1, '2', ['tres', 4], '5', '6']
for x in lista:
print x
● Tuplas
tupla = (1, '2', ('tres', 4), '5', '6')
for x in tupla:
print x
● Diccionarios
diccionario = {'clave1': 'valor1', 'clave2': 2, 'subdicc': {'x': 'd'}}
for x,y in diccionario.items():
print “%s - %s” % (x, y)
17. Listas por comprensiónListas por comprensión
lista_nueva = []
for x in range(10):
if x%2 == 0:
lista_nueva.append(x*2)
lista_nueva = [x*2 for x in range(10) if x%2 == 0]
"lista_nueva:",lista_nueva
● Nota: No recomendable cuando la expresión es complicada.
18. EjerciciosEjercicios
● Evaluar las siguientes expresiones, en el orden adecuado:
– a = 'b'
– b = a + 'b'
– 2 * (a + 'c' + b)
● Dada una cadena ingresada, imprimirla en el orden invertido.
● Devuelve el tamaño de la primera palabra de una oración.
● Imprimir solo los números pares menores que 10 y mayor que 0.
● Dado una cadena ingresada entre mayúsculas y minúsculas, contar el
numero de veces que aparece la vocal “a”.
● Sumar todos los impares que se encuentren entre 0 y 10 (incluyendolo).
● Simular un switch case.
19. Listas: operacionesListas: operaciones
● Eliminar
del lista[index]
● Fusionar
lista = lista + ['x','d'] + ['x','y']
● Copiar
a = [3,4,5,6]
b = a
a is b => True
b = a[:]
a is b => False
b = list(a)
a is b => False
● Comparación
[1, 2, 3] == [1, 2]
False
[1, 2, 3] == [1, 2, 3]
True
[1, 2, 3] == [1, 2, 4]
False
[1, 2, 3] < [1, 3, 2]
True
[10, 20, 30] > [1, 2, 3]
True
[1, 2, 3] < [1, 2]
False
24. Módulos & PackagesMódulos & Packages
● Módulos:
from mimodulo import mifuncion
print mifuncion()
● Packages: se crea un archivo __init__.py dentro de una
carpeta
from mipackage.mimodulo import mifuncion
print mifuncion()
26. EjerciciosEjercicios
● De una lista, eliminar los items ingresados por 3 inputs e imprimirlo.
● Acorde a una lista, simular un paginador, 12 items y mostrar 5 por página, cuyo page
será ingresado por input, imprimir los items.
● Dado 2 conjuntos, imprimir las 3 operaciones básicas (interseccion, diferencia, unión).
● Escriba una función que devuelva el valor de una raíz cúbica de un valor ingresado.
● Diseñe una función que calcule la multiplicación de todos los números que componen
una lista.
● Definir una función que dada una cadena x, devuelva otra cuyo contenido sea el
resultado de concatenar 6 veces por si misma.
● Realizar una función que dada una lista de números, devuelva otra lista que sólo
incluya sus números impares.
● Cree una estructura de package como si fuese java
“src.main.python.com.scytl.platform” e importar un módulo
27. POO: Clase y HerenciaPOO: Clase y Herencia
class Humano(object):
def saludar(self, para):
return "Hola " + para
class Persona(Humano):
def __pensar(self):
return “pensando”
def presentarse(self):
return "Me llamo "+self.nombre
juan_perez = Persona()
juan_perez.nombre = "Juan Perez"
print juan_perez.saludar("Pepito")
print juan_perez.presentarse()
juan_perez.__pensar()
28. POO: ConstructoresPOO: Constructores
class Humano(object):
def saludar(self, para):
return "Hola " + para
class Persona(Humano):
def __init__(self, nombre):
self.nombre = nombre
def presentarse(self):
return "Me llamo "+self.nombre
juan_perez = Persona("Juan Perez")
print juan_perez.saludar("Pepito")
print juan_perez.presentarse()
29. POO: Sobre escritura de métodosPOO: Sobre escritura de métodos
class Persona(Humano):
def presentarse(self):
return "Me llamo "+self.nombre
def saludar(self, para):
#print "saludar hijo"
#return super(Persona, self).saludar(para)
return "Saludo para: " + para
juan_perez = Persona()
juan_perez.nombre = "Juan Perez"
print juan_perez.saludar("Pepito")
print juan_perez.presentarse()
30. POO: Clases abstractasPOO: Clases abstractas
from abc import ABCMeta,
abstractmethod
class Abstracto(object):
__metaclass__ = ABCMeta
@abstractmethod
def metodo(self):
pass
class Heredado(Abstracto):
def metodo(self):
print "heredado"
>> x = Abstracto()
TypeError: Can't
instantiate abstract
class Abstracto with
abstract methods
metodo
>> x = Heredado()
>> x.metodo()
heredado
32. POO: Atributos especialesPOO: Atributos especiales
● __class__ la clase del objeto.
● __class__.__name__ nombre de la clase.
● __dict__ diccionario con los atributos de la clase
● __str__ invocado al momento de hacer print sobre si o str()
● __len__ se invoca al aplicar la funcion len()
● __repr__ se invoca con la funcion repr()
● __iter__ permite iterar sobre una secuencia, como cuando se usa for sencuencia
● __getitem__ para acceder a un objeto secuencialmente o usando un subíndice
tipo objeto[n], requiere 2 parámetros.
● __setitem__ para asignarle el valor a una clave
● __delitem__ implementa el borrado de un objeto
Mas: https://docs.python.org/2/reference/datamodel.html
36. ExcepcionesExcepciones
● except: captura excepciones que no esten en otro except.
● except name: captura una excepcion específica.
● except name as value: captura una excepcion y la asigna a
una variable.
●
except (name1, name2): captura cualquiera de las
expcepciones listadas.
● except (name1, name2) as value: captura cualquiera y la
asigna a una variable.
● else: Se ejecuta si no se presenta ninguna excepcion
● finally: se ejecuta asi se presenten o no excepciones.
37. Excepciones comunesExcepciones comunes
Error Descripción
RuntimeError Error en el sistema
TypeError Error de tipo de dato
NameError Variable no existe
ValueError Error en casting
40. EjerciciosEjercicios
● Crea una clase, que implemente sus métodos pop, push y devuelva cuantos items quedan en la
pila.
● Crear una clase con atributos: nombres, apellidos y dni; que al momento de hacer un print sobre
una instancia imprima los atributos mencionados.
● Crea una clase abstracta llamada FiguraGeometrica con los atributos nombre, num_lados y los
métodos devolver nombre() y calcular area() y extiendala mediante las clases Rectangulo,Circulo,
Triangulo y reimplemente las funciones de la superclase en cada una de las subclases.
● Defina una clase EnsaladaFrutas con una atributo frutas que sea inicialmente ['melones', 'pinas',
'manzanas'] y un atributo raciones cuyo valor inicial sea 4. Escriba un metodo init que recibalos
argumentos ingredientes (una lista de cadenas) y num raciones (un entero) y guarde losvalores
obtenidos en los atributos y frutas y raciones (las que queden)
● En el ejercicio anterior escriba un metodo agregar() que obtenga una cadena de texto y laagregue
al final de la lista frutas. Agregue adem´as un metodo servir() que reduzca en uno la cantidad de
raciones e imprima "Disfrute", si ya no hay raciones debe imprimir "Disculpe"
● Escriba un programa que itere sobre una lista utilizando un rango superior a la cantidad
deelementos de la lista. Cuando se produzca el error, este debe ser capturado por una excepcion e
imprimir sus datos, agregue una sentencia finally que imprima la cantidad de elementos dela lista.