Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - yuqmettal

#1
Python / Re:análisis de ejercicios
Noviembre 07, 2011, 03:23:07 PM
Hola bueno les dejo el codigo de la agenda:
Código: python

#-------------------------------------------------------------------------------------------------------------------------------------------#
#Fecha de creacion: martes 1 de novoembre del 2011              Fecha de modificacion: Lunes 7 de noviembre del 2011                        #
#Archivo: Agenda                                                # de modificaciones: 1                                                      #
#Version:1.0.0                                                                                                                              #
#Autor: Marco Yuquilima                                         Observaciones: Terminado                                                    #
#-------------------------------------------------------------------------------------------------------------------------------------------#

class Elemento:
    def __init__(self,nombre,apellido,*otros):# inicializamos con 2 o mas parametros xq guardar necesita 5 parametros y buscar 2
        self.nombre=nombre
        self.apellido=apellido
        self.otros=otros
        self.f=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','a+')       

    def guardar(self): 
        nuevo=True               #variable que nos indica si existe el contacto para que los datos el txt no se repitan
        hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
        for linea in hoja:
            if linea.find(self.nombre+"\t"+self.apellido)>=0:
                nuevo=False
                break
        hoja.close()
        if nuevo:
            valor=(self.nombre+"\t"+self.apellido+"\t"+self.otros[0]+"\t"+self.otros[1]+"\t"+self.otros[2])
            self.f.write("\n%s" %valor)          #escribimos los datos en el archivo
            self.f.close()
        else:
            print "#####################\nYa existe el contacto \n"           

    def listar(self):#metodo que nos lista todos los contactos
        self.f=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
        print self.f.read()
        self.f.close()

    def buscar (self):#metodo que nos muestra un contacto en caso de existir
        hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
        for linea in hoja:
            if linea.find(self.nombre+"\t"+self.apellido)>=0:
                print linea
        hoja.close()

    def modificar(self):#metodo con el cual podemos modificar un contacto
        hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
        cadena="cadena vacia"
        for linea in hoja:
            if linea.find(self.nombre+"\t"+self.apellido)>=0:
                print linea
                cadena=linea#buscamos nombre y apellido del contacto y almacenamos todos los datos para reemplazarlos
                break
        hoja.close()
        hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
        original=hoja.read()#creamos una "copia" del archivo
        hoja.close
        if original.find(self.nombre+"\t"+self.apellido)>=0:#buscamos al contacto para ingresar nuevos datos
            print"INGRESAR NUEVOS DATOS:"
            n=raw_input(u'Ingresar nombre: ')
            a1=raw_input(u'Ingresar apellido paterno : ')
            a2=raw_input(u'Ingresar apellido materno : ')
            d=raw_input(u'Ingresar direccion : ')
            t=raw_input(u'Ingresar telefono : ')
            txt=original.replace(cadena,n+"\t"+a1+"\t"+a2+"\t"+d+"\t"+t+"\n")#modificamos los datos en una "copia" del archivo
            hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','w')#abrimos el archivo para escribir
            hoja.writelines(txt)#reemplazamos linea a linea la "copia" del archivo al archivo original
            hoja.close()

    def eliminar(self):
        hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
        cadena="cadena vacia"
        for linea in hoja:
            if linea.find(self.nombre+"\t"+self.apellido)>=0:
                print linea
                cadena=linea#buscamos nombre y apellido del contacto y almacenamos todos los datos para reemplazarlos
                break
        hoja.close()
        hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
        original=hoja.read()#creamos una "copia" del archivo
        hoja.close
        if original.find(self.nombre+"\t"+self.apellido)>=0:#buscamos al contacto para ingresar nuevos datos
            txt=original.replace(cadena,"")#modificamos los datos en una "copia" del archivo
            hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','w')#abrimos el archivo para escribir
            hoja.writelines(txt)#reemplazamos linea a linea la "copia" del archivo al archivo original
            hoja.close()
    def __del__(self):
        print "Destruyendo...."#eliminamos de memoria lo que ya no necesitamos

while True:#menu de opciones para interactuar correctamente la clase que manipula el archivo
    print "***************************************************************************************"
    print "MENU DE OPCIONES:"
    print "(1)- Ingresar contacto..."
    print "(2)- Lista de contactos..."
    print "(3)- Buscar contacto..."
    print "(4)- Modificar contacto..."
    print "(5)- Eliminar contacto..."
    print "(6)- Salir..."
    opcion=raw_input(u'Digitar opcion: ')
    print "***************************************************************************************"
    try:
        opcion=int(opcion)
    except:
        print "#################\nPor favor ingresar numero"
        continue
    if opcion==1:   
        n=raw_input(u'Ingresar nombre: ')
        a1=raw_input(u'Ingresar apellido paterno : ')
        a2=raw_input(u'Ingresar apellido materno : ')
        d=raw_input(u'Ingresar direccion : ')
        t=raw_input(u'Ingresar telefono : ')
        f=Elemento(n,a1,a2,d,t)
        f.guardar()
    elif opcion==2:
        f.listar()
    elif opcion==3:
        nombre=raw_input("Nombre de contacto: ")
        apellido=raw_input("Apellido de contacto: ")
        f=Elemento(nombre,apellido)
        f.buscar()
    elif opcion==4:
        nombre=raw_input("Nombre de contacto: ")
        apellido=raw_input("Apellido de contacto: ")
        f=Elemento(nombre,apellido)
        f.modificar()
    elif opcion==5:
        nombre=raw_input("Nombre de contacto: ")
        apellido=raw_input("Apellido de contacto: ")
        f=Elemento(nombre,apellido)
        f.eliminar()
    elif opcion==6:
        break
    else:
        print "#############################\nIngresar numeros entre el 1 y 6"

me parece que esta completo pero cualquier cosa avisenme
#2
gracias amigo...
¿Podrias subir tambien de manejo de bases de datos en postgres con Python?
#3
Python / Re:análisis de ejercicios
Noviembre 03, 2011, 09:28:12 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

gracias por participar, me gustó mucho tu code.
Saludos.

(te edité tu mensaje, para la proxima utiliza las etiquetas para poner código, y evita el doble post)

Bueno muchas gracias lo tomare muy en cuenta  :P
Espero nos pongas mas ejercicios para ir practicando
#4
Python / Re:análisis de ejercicios
Noviembre 02, 2011, 11:13:18 AM
Lo acabo de terminar espero este bien claro no considere años bisiestos y considere solo meses de 30 dias pero vale denme viendo si sirve
saludos....

Código: python

import datetime
class Edad:
    def __init__(self,dia,mes,ano):
        self.dia=int(dia)
        self.mes=int(mes)
        self.ano=int(ano)

    def calcular(self):
        hoy=datetime.datetime.now()
        hoy=str(hoy)
        hoy=hoy.split('-')
        anohoy=hoy[0]
        meshoy=hoy[1]
        x=hoy[2].split(" ")       
        diahoy=x[0]
        anohoy=int(anohoy)
        meshoy=int(meshoy)
        diahoy=int(diahoy)
        if self.ano<anohoy:
            anoactual=anohoy-self.ano
        #else:
            #print "Ingresa bien los datos..."
        if self.mes<meshoy:
            mesactual=meshoy-self.mes
        else:
            y=meshoy+12
            mesactual=y-self.mes
        if diahoy>self.dia:
            diaactual=diahoy-self.dia
        else:
            z=diahoy+30
            diaactual=z-self.dia
        print "tiene", anoactual,"años",mesactual,"meses",diaactual,"dias"

ano=raw_input(u'Ingrese año de nacimiento: ')
mes=raw_input(u'Ingrese mes de nacimiento: ')
dia=raw_input(u'Ingrese dia de nacimiento: ')

objPaciente=Edad(dia,mes,ano)
objPaciente.calcular()



pd: muy buena la agenda del compañero voy aver si desarrollo una para ver que tal... en algunos dias la subire...
#5
no podrias subirlo en mediafire????