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
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

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????