PRACTICA 41: CLASES



class Humano:
    def __init__(self, edad): #_init_ siempre va a ir en las clases. SELF es una palabra reservada, hace referencia a lo que se esta creando
        self.edad= edad

        print 'SOY UN NUEVO OBJETO'

    def hablar(self, mensaje):
        print mensaje




pedro=Humano(26)
raul=Humano(21)

print 'SOY PEDRO Y TENGO ', pedro.edad
print 'SOY RAUL Y TENGO ', raul.edad

pedro.hablar('HOLA')
raul.hablar('HOLA, PEDRO')

ARREGLOS

El módulo que provee las estructuras de datos y las funciones para trabajar con arreglos se llama NumPy, y no viene incluído con Python, por lo que hay que instalarlo por separado.

Para usar las funciones provistas por NumPy, debemos importarlas al principio del programa: 
   
from numpy import array

Como estaremos usando frecuentemente muchas funciones de este módulo, conviene importarlas todas de una vez usando la siguiente sentencia:

from numpy import *


El tipo de datos de los arreglos se llama array. Para crear un arreglo nuevo, se puede usar la función array pasándole como parámetro la lista de valores que deseamos agregar al arreglo:

>>> a = array([6, 1, 3, 9, 8])
>>> a
array([6, 1, 3, 9, 8])

Todos los elementos del arreglo tienen exactamente el mismo tipo. Para crear un arreglo de números reales, basta con que uno de los valores lo sea:

>>> b = array([6.0, 1, 3, 9, 8])
>>> b
array([ 6.,  1.,  3.,  9.,  8.])

UNIDAD 3: CLASES Y OBJETOS

1. CLASES

Una clase es una plantilla genérica de un objeto. La clase proporciona variables iniciales de estado (donde se guardan los atributos) e implementaciones de comportamiento (métodos).

Las clases nos dan la posibilidad de crear estructuras de datos más complejas. En nuestro ejemplo crearemos una clase Mascotas que realizará un seguimiento del nombre y la especie (que pasaremos como atributos).



¿CÓMO DEFINIR UNA CLASE EN PYTHON?

class Mascota(object):

Aquí es donde empezamos a crear nuestra clase (lo hacemos con la palabra class). La segunda palabra (Mascota) es el nombre que le daremos a nuestra clase. La tercera palabra que se encuentra dentro de los paréntesis (object) se conoce con el nombre de herencia (mas tarde hablaré sobre el concepto de herencia). Lo que debemos saber es que "object" es una variable especial en python que se utiliza de herencia cuando creamos una nueva clase en python.



def __init__(selfnombreespecie):
----self.nombre nombre
----self.especie especie


Cuando creamos una nueva mascota, necesitamos inicializarla con un nombre y una especie. El método __init__ (método especial para las funciones que forman parte de una clase) es una función especial en python que inicializa la clase con los atributos que nosotros le pasemos. 

Por ejemplo: si corremos el código Teo = Mascota("Teo", "Perro") , el método __init__ es llamado con los valores Teo"Teo" y "Perro" en las variables selfnombre y especies, respectivamente.


La variable self es una instancia de la clase y es bueno aclarar que no es una palabra reservada de python, cualquier etiqueta utilizada como primer parámetro tendría el mismo valor (se desaconseja el uso de otras etiquetas por un tema de convención). O sea que, cada vez que declaremos un método en python, vamos a tener que agregarle la variable self para que cuando sea invocado el método, Python pase el objeto instanciado y opere con los valores actuales de esa instancia.



¿Qué es un objeto?

Los objetos son la clave para entender la Programación Orientada a Objetos. Si miramos a nuestro alrededor  encontraremos un sin fin de objetos de la vida real: perro, escritorio, televisor, bicicleta, etc...

Tenemos diversos tipos de objetos, los cuales son los objetos clases, objetos instancia y objetos metodos. 

Objetos clase: Los objetos clase soportan dos tipos de operaciones: hacer referencia a atributos e instanciación.
Para hacer referencia a atributos se usa la sintaxis estándar de todas las referencias a atributos en Python: objeto.nombre

Objetos instancia: La única operación que es entendida por los objetos instancia es la referencia de atributos. Hay dos tipos de nombres de atributos válidos, atributos de datos y métodos.
Los atributos de datos se corresponden con las “variables de instancia” en Smalltalk, y con las “variables miembro” en C++. Los atributos de datos no necesitan ser declarados; tal como las variables locales son creados la primera vez que se les asigna algo.
El otro tipo de atributo de instancia es el método. Un método es una función que “pertenece a” un objeto. En Python, el término método no está limitado a instancias de clase: otros tipos de objetos pueden tener métodos también. Por ejemplo, los objetos lista tienen métodos llamados append, insert, remove, sort, y así sucesivamente. Los nombres válidos de métodos de un objeto instancia dependen de su clase. Por definición, todos los atributos de clase que son objetos funciones definen métodos correspondientes de sus instancias.

UNIDAD 3 (PRACTICA 40): REGISTRO DE DATOS CON INTERFAZ

Usando como referencia el código de Carlos Olvera: 









import Tkinter
from Tkinter import *
from logging import root


def ocultar(ventana):
    ventana.destroy()

def ejecutar(f):
    v0.after(200, f)

def ingresar():

    archivo= open('Ejemplo.csv', 'a')
    lab1= Label(text='REGISTRO DE MATAMOROS', fg='BLACK')
    lab1.grid(row=2, column=3, padx=120, pady=100)

    label2= Label(text= ' NOMBRE ')
    label2.grid(row=3, column=2)
    clv_str = StringVar()
    clv_ent = Entry(textvariable=clv_str)
    clv_ent.grid(row=3, column=3)
    clv_str.get()


    label3= Label(text='APELLIDO')
    label3.grid(row=4, column=2)
    ape_str = StringVar()
    ape_ent = Entry(textvariable=ape_str)
    ape_ent.grid(row=4, column=3)
    ape_str.get()
    button = Button(v0,text="  AGREGAR REGISTRO    ", command=lambda:abrir()).place(x=350,y=250)
    b3 = Button(text='SALIR', command=lambda: ejecutar(ocultar(v0)))
    b3.grid(row=15, column=3)
    v0.deiconify()

    def abrir():
        archivo =open('Ejemplo.csv', 'a')
        nombre = clv_ent.get()
        apellido = ape_str.get()
        archivo.write(nombre + ' , ' + apellido + '\n')
        labeluniversal = Label(v0, text='REGISTRO GUARDADO ' + nombre + ' , ' + apellido + '        ').place(x=100, y=350)
        archivo.close()



def consultar():

    mostrar= Button(v0,text=" MOSTRAR ARCHIVOS   ", command=lambda:show()).place(x=350,y=250) #Manda a llamar a la funcion show


    def show():
        archivo = open('Ejemplo.csv')
        labeluniversal = Label(v0, text='ARCHIVOS REGISTRADOS: '+ archivo.read()).place(x=150, y=350)
        archivo.close()

def eliminar():
    b = Button(v0, text=" ELIMINAR REGISTROS   ", command=lambda: delete()).place(x=350, y=250)





    def delete():
        archivo = open('Ejemplo.csv', 'a')
        archivo.truncate()

        labeluniversal = Label(v0, text='REGISTROS ELIMINADOS EXITOSAMENTE').place(x=100, y=400)

        archivo.close()


def limpiar():

    limpiar = Button(v0, text='             LIMPIAR              ', command= lambda :ingresar()).place(x=350, y=250)




v0= Tk()
v0.geometry('500x500')
menu1 = Menu (v0)
v0.config(menu=menu1)
menu1_1 = Menu(menu1, tearoff=0)
menu1.add_cascade(label="REGISTROS", menu=menu1_1)
menu1_1_1 = Menu(menu1_1, tearoff=0)
menu1_1.add_cascade(label="OPCIONES", menu=menu1_1_1)
menu1_1_1.add_command(label="INGRESAR DATOS",command=lambda: ingresar())
menu1_1_1.add_command(label="CONSULTA DE DATOS",command=lambda: consultar())
menu1_1_1.add_command(label="ELIMINAR DATOS",command=lambda: eliminar())
menu1_1_1.add_command(label="LIMPIAR",command=lambda: limpiar())

v0.mainloop()


PRACTICA 39: MENU DE POLIGONOS





from Tkinter import *

def ocultar(ventana):
    ventana.destroy()

def ejecutar(f):
    v0.after(200, f)

def cuadrilatero():
    v1 = Toplevel(v0)
    v1.title('VENTANA HIJA')
    v1.protocol('WM_DELETE_WINDOW', 'onexit')
    v1.config(bg= 'black')
    v1.geometry('500x500')

    canvas = Canvas(v1, width= 390, height=350, bg= 'gold')
    canvas.pack(expand=YES, fill=BOTH)

    canvas.create_polygon(140, 40, 300, 40, 400, 140, 40, 140, width=5, fill= 'white', outline= 'black')
    b3 = Button(canvas, text='OCULTAR POLIGONO', command= lambda : ejecutar(ocultar(v1)))
    b3.grid(row= 1, column=3)
    v1.deiconify()

def Honguito():
        v1 = Toplevel(v0)
        v1.title('VENTANA HIJA')
        v1.protocol('WM_DELETE_WINDOW', 'onexit')
        v1.config(bg='black')
        v1.geometry('500x500')

        canvas = Canvas(v1, width=300, height=200, bg='white')
        canvas.pack(expand=YES, fill=BOTH)

        canvas.create_polygon(70, 10, 130, 10, 130, 20, 150, 20, 150, 30, 160, 30, 160, 50, 170, 50, 170, 60, 180, 60,
                             180, 130,
                             170, 130, 170, 140, 160, 140, 160, 160, 150, 160, 150, 170, 50, 170, 50, 160, 40, 160, 40,
                             140, 30, 140, 30, 130, 20, 130,
                             20, 60, 30, 60, 30, 50, 40, 50, 40, 30, 50, 30, 50, 20, 70, 20, 70, 10, width=1,
                             fill="black", outline="black")

        # Primera parte blanca
        canvas.create_polygon(80, 20, 120, 20, 120, 30, 140, 30, 140, 40, 150, 40, 150, 60, 160, 60, 160, 70, 170, 70,
                             170, 120, 150, 120, 150, 110, 50, 110, 50, 120, 30, 120, 30, 70, 40, 70, 40, 60, 50, 60,
                             50, 40, 60, 40, 60, 30, 80, 30, 80, 20, width=1, fill="white", outline="white")

        # segunda parte blanca
        canvas.create_polygon(60, 120, 140, 120, 140, 130, 150, 130, 150, 150, 140, 150, 140, 160, 60, 160, 60, 150,
                             50, 150, 50, 130, 60, 130, 60, 120, width=1, fill="white", outline="white")

        # ojos
        canvas.create_rectangle(80, 120, 90, 140, width=1, fill="black", outline="black")
        canvas.create_rectangle(110, 120, 120, 140, width=1, fill="black", outline="black")

        # manchas
        canvas.create_polygon(80, 70, 120, 70, 120, 80, 130, 80, 130, 100, 120, 100, 120, 110, 80, 110, 80, 100, 70, 100,
                             70, 80, 80, 80, 80, 70, width=1, fill="red", outline="red")
        canvas.create_polygon(110, 20, 120, 20, 120, 30, 140, 30, 140, 50, 120, 50, 120, 40, 110, 40, 110, 20, width=1,
                             fill="red", outline="red")
        canvas.create_polygon(80, 20, 90, 20, 90, 40, 80, 40, 80, 50, 60, 50, 60, 30, 80, 30, 80, 20, width=1,
                             fill="red", outline="red")
        canvas.create_polygon(40, 60, 60, 60, 60, 90, 50, 90, 50, 100, 30, 100, 30, 70, 40, 70, 40, 60, width=1,
                             fill="red", outline="red")
        canvas.create_polygon(140, 60, 160, 60, 160, 70, 170, 70, 170, 100, 150, 100, 150, 90, 140, 90, 140, 60, width=1,
                             fill="red", outline="red")
        b3= Button(canvas, text='OCULTAR POLIGONO DE CAROLINA', command= lambda : ejecutar(ocultar(v1)))
        b3.grid(row=1, column=3)
        v1.deiconify()


def PERRITO():
    v1 = Toplevel(v0)
    v1.title('VENTANA HIJA')
    v1.protocol('WM_DELETE_WINDOW', 'onexit')
    v1.config(bg='black')
    v1.geometry('500x500')

    canvas = Canvas(v1, width=300, height=200, bg='white')
    canvas.pack(expand=YES, fill=BOTH)

    canvas.create_polygon(415, 50, 235, 490, 365, 625, 755, 625, 850, 500, 700, 50,
                             width=1, fill="#e0af77", outline="brown")
    # orejas
    canvas.create_polygon(415, 50, 60, 320, 175, 635, width=1, fill="#bb6400", outline="#000000")
    canvas.create_polygon(700, 50, 1045, 320, 896, 635, width=1, fill="#bb6400", outline="#000000")
    # menton
    canvas.create_polygon(365, 625, 550, 415, 755, 625, width=1, fill="#bb6400", outline="#000000")
    # ojos
    canvas.create_oval(420, 225, 480, 305, width=1, fill="#1a1200", outline="#000000")
    canvas.create_oval(630, 225, 690, 305, width=1, fill="#1a1200", outline="#000000")
    # bigotes
    canvas.create_oval(475, 525, 490, 540, width=1, fill="#1a1200", outline="#000000")
    canvas.create_oval(615, 525, 630, 540, width=1, fill="#1a1200", outline="#000000")
    canvas.create_oval(445, 560, 460, 575, width=1, fill="#1a1200", outline="#000000")
    canvas.create_oval(610, 560, 625, 575, width=1, fill="#1a1200", outline="#000000")
    canvas.create_oval(480, 560, 495, 575, width=1, fill="#1a1200", outline="#000000")
    canvas.create_oval(640, 560, 655, 575, width=1, fill="#1a1200", outline="#000000")
    # nariz
    canvas.create_oval(470, 305, 640, 500, width=1, fill="#1a1200", outline="#000000")

    b3 = Button(canvas, text='OCULTAR POLIGONO DE AMBROCIO', command=lambda: ejecutar(ocultar(v1)))
    b3.grid(row=1, column=3)
    v1.deiconify()


def Flor():
    v1 = Toplevel(v0)
    v1.title("Ventana hija")
    v1.protocol("WM_DELETE_WINDOW", "onexit")
    v1.config(bg="black")
    v1.geometry("500x500")
    canvas = Canvas(v1, width=300, height=200, bg='white')
    canvas.pack(expand=YES, fill=BOTH)
    
    
    canvas.create_oval(120, 80, 320, 200, width=2, fill="chocolate", outline="black")

    # ojos
    canvas.create_oval(180, 100, 200, 130, width=1, fill="black", outline="black")
    canvas.create_oval(240, 100, 260, 130, width=1, fill="black", outline="black")

    # pupila
    canvas.create_oval(185, 105, 190, 115, width=1, fill="white", outline="black")
    canvas.create_oval(245, 105, 250, 115, width=1, fill="white", outline="black")

    # boca
    canvas.create_arc(170, 140, 270, 180, extent=180, style=CHORD, start=180, width=2, fill="black", outline="black")

    # sonrisa rosybrown
    canvas.create_arc(155, 145, 190, 160, extent=100, style=ARC, start=180, width=2, fill="black", outline="black")
    canvas.create_arc(255, 145, 290, 160, extent=100, style=ARC, start=255, width=2, fill="black", outline="black")
    canvas.create_oval(195, 170, 245, 180, width=2, fill="pink2", outline="black")

    # Petalos
    canvas.create_arc(200, 30, 240, 130, extent=180, start=0, style=CHORD, width=2, fill="yellow2", outline="black")
    canvas.create_arc(240, 40, 280, 130, extent=180, start=353, style=CHORD, width=2, fill="yellow2",
                     outline="black")
    canvas.create_arc(275, 58, 315, 145, extent=185, start=340, style=CHORD, width=2, fill="yellow2",
                     outline="black")
    canvas.create_arc(255, 100, 365, 140, extent=190, start=280, style=CHORD, width=2, fill="yellow2",
                     outline="black")
    canvas.create_arc(260, 130, 360, 170, extent=180, start=268, style=CHORD, width=2, fill="yellow2",
                     outline="black")
    canvas.create_arc(245, 200, 360, 165, extent=220, start=225, style=CHORD, width=2, fill="yellow2",
                     outline="black")
    canvas.create_arc(255, 163, 295, 233, extent=215, start=178, style=CHORD, width=2, fill="yellow2",
                     outline="black")
    canvas.create_arc(225, 155, 265, 245, extent=190, start=180, style=CHORD, width=2, fill="yellow2",
                     outline="black")
    canvas.create_arc(170, 155, 215, 245, extent=190, start=170, style=CHORD, width=2, fill="yellow2",
                     outline="black")
    canvas.create_arc(135, 158, 175, 233, extent=210, start=150, style=CHORD, width=2, fill="yellow2",
                     outline="black")
    canvas.create_arc(80, 155, 192, 195, extent=198, start=105, style=CHORD, width=2, fill="yellow2",
                     outline="black")
    canvas.create_arc(65, 120, 172, 160, extent=193, start=84, style=CHORD, width=2, fill="yellow2", outline="black")

    canvas.create_arc(128, 50, 168, 133, extent=200, start=10, style=CHORD, width=2, fill="yellow2", outline="black")

    canvas.create_arc(80, 83, 170, 123, extent=233, start=35, style=CHORD, width=2, fill="yellow2", outline="black")
    canvas.create_arc(160, 40, 200, 125, extent=190, start=2, style=CHORD, width=2, fill="yellow2", outline="black")

    # tallo
    canvas.create_polygon(210, 200, 210, 250, 220, 290, 235, 330, 230, 380, 230, 410,
                         245, 410, 245, 380, 250, 330, 235, 290, 225, 250, 225, 200, width=1, fill="forestgreen",
                         outline="black")
    # hoja derecha
    canvas.create_arc(230, 250, 310, 300, extent=270, start=0, style=CHORD, width=2, fill="forestgreen",
                     outline="darkgreen")
    canvas.create_arc(230, 265, 300, 295, extent=105, start=75, style=ARC, width=2, outline="darkgreen")
    # hoja izquierda
    canvas.create_arc(125, 250, 215, 300, extent=270, start=270, style=CHORD, width=2, fill="forestgreen",
                     outline="darkgreen")
    canvas.create_arc(130, 265, 215, 295, extent=105, start=0, style=ARC, width=2, outline="darkgreen")

    # fondo derecho
    canvas.create_arc(245, 300, 360, 410, extent=180, start=0, style=CHORD, width=1, fill="darkgreen",
                     outline="black")
    canvas.create_arc(245, 325, 380, 440, extent=170, start=0, style=CHORD, width=2, fill="forestgreen",
                     outline="darkgreen")
    canvas.create_arc(240, 340, 365, 460, extent=105, start=35, style=ARC, width=2, fill="forestgreen",
                     outline="darkgreen")
    # fondo izquierdo
    canvas.create_arc(115, 310, 235, 400, extent=195, start=345, style=CHORD, width=1, fill="darkgreen",
                     outline="black")
    canvas.create_arc(105, 340, 235, 470, extent=170, start=20, style=CHORD, width=2, fill="forestgreen",
                     outline="darkgreen")
    canvas.create_arc(135, 350, 240, 490, extent=130, style=ARC, start=8, width=2, fill="black", outline="darkgreen")
    # fondo medio
    canvas.create_arc(185, 345, 350, 500, extent=180, start=0, style=CHORD, width=2, fill="forestgreen",
                     outline="darkgreen")
    canvas.create_arc(185, 365, 315, 500, extent=130, style=ARC, start=40, width=2, outline="darkgreen")

    b3 = Button(canvas, text="OCULTAR POLIGONO DE GRISELDA", command=lambda: ejecutar(ocultar(v1)))
    b3.grid(row=1, column=3)
    v1.deiconify()

def Casita():
        v1 = Toplevel(v0)
        v1.title('VENTANA HIJA')
        v1.protocol('WM_DELETE_WINDOW', 'onexit')
        v1.config(bg='black')
        v1.geometry('1147x709')

        canvas = Canvas(v1, width=300, height=200, bg='light blue')
        canvas.pack(expand=YES, fill=BOTH)

        canvas.create_rectangle(100, 410, 370, 650, width=2, fill='yellow', outline='black')
        # tejado
        canvas.create_polygon(70, 409, 400, 409, 245, 200, width=2, fill='red', outline='black')
        # ventanas
        canvas.create_rectangle(120, 420, 200, 500, width=2, fill='blue', outline='black')
        canvas.create_rectangle(270, 420, 350, 500, width=2, fill='purple', outline='black')
        # Puerta
        canvas.create_rectangle(200, 550, 260, 650, width=2, fill='red', outline='black')
        canvas.create_line(230, 550, 230, 650, width=2, fill="black")
        canvas.create_oval(215, 600, 200, 620, width=2, fill='brown', outline='black')
        # pasto
        canvas.create_rectangle(1, 650, 1147, 700, width=2, fill='green', outline='black')
        # arbol
        canvas.create_rectangle(600, 410, 570, 650, width=2, fill='brown', outline='black')
        canvas.create_oval(700, 550, 480, 350, width=2, fill='green', outline='black')
        # sol
        canvas.create_oval(1000, 150, 880, 50, width=2, fill='yellow', outline='black')
        canvas.create_line(900, 200, 1000, 1, width=10, fill="yellow")
        canvas.create_line(780, 125, 1100, 70, width=10, fill="yellow")
        canvas.create_line(1050, 200, 880, 10, width=10, fill="yellow")

        b3 = Button(canvas, text="OCULTAR POLIGONO DE MANUEL", command=lambda: ejecutar(ocultar(v1)))
        b3.grid(row=1, column=3)
        v1.deiconify()








v0= Tk()
menu1 = Menu (v0)
v0.config(menu=menu1)
menu1_1 = Menu(menu1, tearoff=0)
menu1.add_cascade(label="DIBUJOS", menu=menu1_1)
menu1_1_1 = Menu(menu1_1, tearoff=0)
menu1_1.add_cascade(label="DIBUJOS", menu=menu1_1_1)
menu1_1_1.add_command(label="PERRITO",command=lambda: PERRITO())
menu1_1_1.add_command(label="HONGUITO",command=lambda: Honguito())
menu1_1_1.add_command(label="FLOR",command=lambda: Flor())
menu1_1_1.add_command(label="CASITA",command=lambda: Casita())


menu1_2 = Menu(menu1, tearoff=0)
menu1.add_cascade(label="FIGURA", menu=menu1_2)
menu1_2.add_command(label="CUADRILATERO",command=lambda: cuadrilatero())

v0.mainloop()

PRACTICA 38: 04/10/2018 (UNIDAD 3)

MENÚ DE OPCIONES: CAPTURA, CONSULTA Y BORRADO DE REGISTROS









print 'MENU \n\n 1-------> CAPTURAR NUEVO REGISTRO \n 2--------> MOSTRAR ARCHIVO\n 3-------->ELIMINAR REGISTRO'
OPCION = raw_input('ELIGE LA OPCION: ')

if OPCION == '1':
    print 'NUEVO REGISTRO\n'
    ARCHIVO = open('ejemplo3.csv', 'a')
    NOMBRE = raw_input('NOMBRE: ')
    APELLIDO = raw_input('APELLIDO: ')
    print 'DATOS CAPTURADOS: '+NOMBRE + ' APELLIDO: '+APELLIDO
    ARCHIVO.write(NOMBRE)
    ARCHIVO.write(',')
    ARCHIVO.write(APELLIDO)
  #  ARCHIVO.write(',')
    ARCHIVO.write('\n')

elif OPCION == '2':
    print 'MOSTRAR REGISTROS \n'
    ARCHIVO = open('ejemplo3.csv')
    print (ARCHIVO.read())
    ARCHIVO.close()

elif OPCION =='3':
    ARCHIVO = open('ejemplo3.csv', 'a')
    ARCHIVO.truncate()
    print 'REGISTROS ELIMINADOS'
    ARCHIVO.close()print 'MENU \n\n 1-------> CAPTURAR NUEVO REGISTRO \n 2--------> MOSTRAR ARCHIVO\n 3-------->ELIMINAR REGISTRO'
OPCION = raw_input('ELIGE LA OPCION: ')

if OPCION == '1':
    print 'NUEVO REGISTRO\n'
    ARCHIVO = open('ejemplo3.csv', 'a')
    NOMBRE = raw_input('NOMBRE: ')
    APELLIDO = raw_input('APELLIDO: ')
    print 'DATOS CAPTURADOS: '+NOMBRE + ' APELLIDO: '+APELLIDO
    ARCHIVO.write(NOMBRE)
    ARCHIVO.write(',')
    ARCHIVO.write(APELLIDO)
  #  ARCHIVO.write(',')
    ARCHIVO.write('\n')

elif OPCION == '2':
    print 'MOSTRAR REGISTROS \n'
    ARCHIVO = open('ejemplo3.csv')
    print (ARCHIVO.read())
    ARCHIVO.close()

elif OPCION =='3':
    ARCHIVO = open('ejemplo3.csv', 'a')
    ARCHIVO.truncate()
    print 'REGISTROS ELIMINADOS'
    ARCHIVO.close()