Análisis de ejercicios

Iniciado por blozzter, Agosto 11, 2011, 12:35:47 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Agosto 11, 2011, 12:35:47 PM Ultima modificación: Marzo 23, 2015, 12:12:01 PM por Expermicid
Hola comunidad,
que visto que muchos están empezando en la programación en Python,
creo que la mejor manera de aprender, es practicar.

mi sugerencia es que vayamos posteando ejercicios. comenzar con cosas simples, secuenciales y decisiones, luego ciclos, despues listas y cosas asi.

para mantener también así mas activo esta parte del foro.



partir con cosas como:

Citar
En el consultorio del barrio, el doctor que atiende a Pepito tiene problemas para calcular la
edad de los pacientes. Por ello necesitamos un algoritmo que dad la fecha actual y la de
nacimiento de una persona determine la edad de estos



asi son los ejercicios que nos daban al comienzo en mi universidad.
entonces vamos planteando las soluciones y ayudando a quienes les cueste encontrar el algoritmo.



es solo una idea,, opinen.

saludos.
¡< blozzter >!

Agosto 11, 2011, 10:25:42 PM #1 Ultima modificación: Mayo 03, 2014, 03:56:05 AM por Flemon
Muy buena propuesta :D
En el caso del doctor hice el siguiente code:

Código: python
print 'Hola doctor/a!!!'
print 'Bienvenido, con este programa podra calcular la edad de sus pacientes'
def edad():
    nac = int(raw_input('Introduzca el año de nacimiento del paciente--->'))
    actual = int(raw_input('Introduzca el año actual---> '))
    edadpac = actual - nac
    print 'La edad del paciente es de',edadpac

edad()


Agosto 11, 2011, 10:43:46 PM #2 Ultima modificación: Mayo 03, 2014, 03:56:32 AM por Flemon
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Muy buena propuesta :D
En el caso del doctor hice el siguiente code:

Código: python
print 'Hola doctor/a!!!'
print 'Bienvenido, con este programa podra calcular la edad de sus pacientes'
def edad():
    nac = int(raw_input('Introduzca el año de nacimiento del paciente--->'))
    actual = int(raw_input('Introduzca el año actual---> '))
    edadpac = actual - nac
    print 'La edad del paciente es de',edadpac

edad()



que bueno haber captado la atención de alguien xD

me parece bien el code. pero te haré un cuestionamiento:
que pasaría si el paciente nació en diciembre del 2000 y actualmente estamos en agosto del 2011?
tu code tiraría como edad "11 años", cuando el paciente solo tiene 10 (porque todavía no llegamos al mes en el que está de cumpleaños). imagínate que el doctor le receta una medicina no apta pora su edad, podemos terminar con el paciente muerto por culpa del programa  :o   (jaja, sé que exagero  ::) )

te hago la invitación para que corrijas ese error. pero vas bien.
saludos, cualquier duda solo postea.
¡< blozzter >!

Mi humilde código:
Código: python

# -*- coding: utf-8 -*-
import datetime,re
guarda = []
fecha_actual = datetime.date.today()
guarda.append(fecha_actual)
ano=0
mes=0
dia=0
for i,s,d in re.findall("(.*)\-(.*)\-(.*)",str(guarda[0])):
  ano = i
  mes = s
  dia = d
print ano,mes,dia
fecha_nace=raw_input("Fecha Nacimiento(AA-MM-DD):")
ano_paciente=0
mes_paciente=0
for i,s,d in re.findall("(.*)\-(.*)\-(.*)",fecha_nace):
  ano_paciente = i
  mes_paciente = s
calculo=int(ano)-int(ano_paciente)
if mes > mes_paciente:
  print calculo
else:
  print "Edad del Paciente:",calculo-1


Saludos.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

JaAViEr, agradezco tu participacion tambien.


me parece una buena idea lo que estas haciendo. muy bueno eso de usar el modulo datetime para ver la fecha actual y re para buscar los datos ingresados.


pero observa lo mio que estuve de cumpleaños hace poco:


Código: php

2011 08 11
Fecha Nacimiento(AA-MM-DD):1992-08-09
Edad del Paciente: 18


que yo sepa, cumplí 19  ::)  jajja.


saludos, te invito a revisar el código.
¡< blozzter >!

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Muy buena propuesta :D
En el caso del doctor hice el siguiente code:

Código: php
print 'Hola doctor/a!!!'
print 'Bienvenido, con este programa podra calcular la edad de sus pacientes'
def edad():
    nac = int(raw_input('Introduzca el año de nacimiento del paciente--->'))
    actual = int(raw_input('Introduzca el año actual---> '))
    edadpac = actual - nac
    print 'La edad del paciente es de',edadpac

edad()



que bueno haber captado la atención de alguien xD

me parece bien el code. pero te haré un cuestionamiento:
que pasaría si el paciente nació en diciembre del 2000 y actualmente estamos en agosto del 2011?
tu code tiraría como edad "11 años", cuando el paciente solo tiene 10 (porque todavía no llegamos al mes en el que está de cumpleaños). imagínate que el doctor le receta una medicina no apta pora su edad, podemos terminar con el paciente muerto por culpa del programa  :o   (jaja, sé que exagero  ::) )

te hago la invitación para que corrijas ese error. pero vas bien.
saludos, cualquier duda solo postea.

jajajaja habia pensado eso de la fecha pero andaba con prisa :/
Voy a ver si lo puedo solucionar
Gracias :D

Mañana lo reviso, ahora voy a comer y luego tengo un torneo en Wii.

Saludos.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Mañana lo reviso, ahora voy a comer y luego tengo un torneo en Wii.

Saludos.

jaja, ok. suerte en ese torneo ;)
¡< blozzter >!

Agosto 12, 2011, 05:22:33 AM #8 Ultima modificación: Agosto 12, 2011, 05:29:14 AM por Sensei
Hola!

Yo acabo de hacerlo recién levantado y justo antes de irme xD, el algoritmo creo que está bien, pero no me hace bien el cálculo, da error y salta a la excepción. Alguna solución?

Código: python
#!/usr/bin/python

###################
#Cálculo de edad  #
#by sensei        #
#to underc0de.org #
###################

def edad():
    try:
        diaN=int(input('Que dia nacio?'))
        mesN=int(input('Que mes nacio?'))
        anhoN=int(input('Que anho nacio?'))

        if anhoN==anho:
            if mesN==mes:
                if diaN<dia:
                    print 'su edad es: ', anho-anhoN-1
                else:
                    print 'su edad es: ', anho-anhoN
            elif mesN<mes:
                print 'su edad es: ', anho-anhoN-1

            else:
                print 'su edad es: ', anho-anhoN
        elif anhoN<anho:
            print 'su edad es: ', anho-anhoN-1
        else:
            print 'su edad es: ', anho-anhoN
    except:
        print 'Ingrese datos validos'


def main():
    print 'Configuracion'
    dia=int(input('Que dia es hoy?'))
    mes=int(input('En que mes estamos?'))
    anho=int(input('En que anho?'))
    while True:
        print '''Hola, bienvenido a calculo de edad. Que desea hacer?
                 1. Calcular mi edad para la receta.
                 2. Salir
                 '''

        opc=raw_input('Elija su opcion y pulse [INTRO]: ')

        if opc=='1':
            edad()
        elif opc=='2':
            break
            exit()
        else:
            print 'Introduzca una opcion valida'
       

main()

hola, Sensei.

te explico: el try funciona mientras todo es True; en caso que alguna de las comparaciones sea False, pasará al except.


en tu caso, en la linea 15, al no cumplirse   if anhoN==anho:   , se salta de inmediato al except.

te recomiendo que primero hagas que funcione sin validar los datos, supondremos que el doctor nunca se equivocará en ingresarlos. luego revisamos la validación de entradas.


saludos!
espero ver el segundo intento ;)
¡< blozzter >!

Agosto 12, 2011, 09:20:21 PM #10 Ultima modificación: Agosto 12, 2011, 09:45:50 PM por Sensei
Hola de nuevo,

Acabo de llegar y lo he modificado rápido. Primer error el algoritmo, lo hice al revés, cosas de las prisas, como no me calculaba pues no me di cuenta y no puede evaluarlo correctamente. Luego decir que ya lo he arreglado y funciona, pero queda menos "elegante". El código es este:

Código: python
#!/usr/bin/python

###################
#Cálculo de edad  #
#by sensei        #
#to underc0de.org #
###################

def main():
    print 'Configuracion'
    dia=int(input('Que dia es hoy?'))
    mes=int(input('En que mes estamos?'))
    anho=int(input('En que anho?'))
    while True:
        print '''Hola, bienvenido a calculo de edad. Que desea hacer?
                 1. Calcular mi edad para la receta.
                 2. Salir
                 '''

        opc=raw_input('Elija su opcion y pulse [INTRO]: ')

        if opc=='1':
            diaN=int(input('Que dia nacio?'))
            mesN=int(input('Que mes nacio?'))
            anhoN=int(input('Que anho nacio?'))
           
            if mesN==mes:
                if diaN<=dia:
                    print 'su edad es: ', anho-anhoN
                else:
                    print 'su edad es: ', anho-anhoN-1
            elif mesN<mes:
                print 'su edad es: ', anho-anhoN
            else:
                print 'su edad es: ', anho-anhoN-1
               
        elif opc=='2':
            break
            exit()
           
        else:
            print 'Introduzca una opcion valida'
       

main()


Ahora bien, por falta de conocimiento del lenguaje tengo dos dudas:
1- Cómo podria hacer para que me evalue en el ejemplo anterior en la función edad las variables de la funcion main? He probado y digamos que "no las guarda"
2- Cómo podemos hacer para utilizar excepciones de forma correcta con un algoritmo así?

Un saludo!

Agosto 12, 2011, 10:35:25 PM #11 Ultima modificación: Agosto 12, 2011, 10:39:39 PM por blozzter
CitarAhora bien, por falta de conocimiento del lenguaje tengo dos dudas:
1- Cómo podria hacer para que me evalue en el ejemplo anterior en la función edad las variables de la funcion main? He probado y digamos que "no las guarda"
2- Cómo podemos hacer para utilizar excepciones de forma correcta con un algoritmo así?


Sensei,
tu primera duda creo que se relaciona con lo que el uso de las funciones, pasar y recibir parámetros.
te dejo un ejemplo haber si te sirve:


Código: python

def evaluar(variable):  #funcion que nos muestra si la variable es de tipo numerica o de tipo cadena
    if type(variable) == int:
        print 'numerica'
    elif type(variable) == str:
        print 'cadena'

def variable():
    var = "blozzter"
    return var
   
var = variable()  # "var" ahora vale "aqui un texto"
evaluar(var) #llamamos  a la funcion "evaluar" con el parametro "var"


cualquier duda, pregunta.
y con respecto a la segunda duda, no veo la necesidad de utilizar el try-except para este caso. quizás podría ser para validar mejor, pero considero que es un detalle.


ahora bien, tu code anda cerca, pero tiene algunas falencias.
si lo pruebo con esta fecha mira lo que pasa:

Código: php
Que dia es hoy?12
En que mes estamos?8
En que anho?2011
Hola, bienvenido a calculo de edad. Que desea hacer?
                1. Calcular mi edad para la receta.
                2. Salir
               
Elija su opcion y pulse [INTRO]: 1
Que dia nacio?9
Que mes nacio?8
Que anho nacio?1992
su edad es:  18


en este caso, la edad seria 19  ;D

edito: acabo de implementar el try-except para validar que el usuario coloca un formato de fecha válido.


saludos.
¡< blozzter >!

Agosto 13, 2011, 04:10:43 AM #12 Ultima modificación: Agosto 13, 2011, 04:29:05 PM por Sensei
Edito, efectivamente, has usado el código antes del ninja edit, jeje. Ahora acabo de probarlo en el movil (menudo curro pasarlo xDD) y si funciona. Mañana cuando llegue a casa y tenga un rato pruebo lo que has comentado de las variables.

Un saludo!

bueno, retomo el tema, ahora dejo mi versión de como resolví el problema.


Código: python

from datetime import*

def fecha_actual():   
    fecha = str(date.today())
    dia = int(fecha[8:10])
    mes = int(fecha[5:7])
    anho = int(fecha[0:4])
    return dia, mes, anho

dia_actual, mes_actual, anho_actual = fecha_actual()

nacimiento = raw_input("fecha de nacimiento (DD-MM-AA): ")

edad = -1

try:
    dia_nacimiento = int(nacimiento[0:2])
    mes_nacimiento = int(nacimiento[3:5])
    anho_nacimiento = int(nacimiento[6:10])
except:
    print "[+] haz de introducir una fecha valida"
    exit()

if anho_actual >= anho_nacimiento:
  if mes_actual > mes_nacimiento:  #ya cumpli0 en este anho
    edad = anho_actual - anho_nacimiento
  elif mes_actual == mes_nacimiento: #dependerA del dIa
    if dia_actual < dia_nacimiento:
      edad = anho_actual - anho_nacimiento - 1
    else:
      edad = anho_actual - anho_nacimiento
  elif mes_actual < mes_nacimiento:  #todavia no cumple
    edad = anho_actual - anho_nacimiento - 1

if edad <= -1:
    print "[+] el paciente todavia no nace xD"

else:
    print "edad del paciente: ", edad



saludos  :)
¡< blozzter >!

Agosto 18, 2011, 03:31:00 PM #14 Ultima modificación: Agosto 18, 2011, 03:47:20 PM por horrorc0re
buenas!

xDD me habeis picado ami tambien .. aqui mi code (no compruebo que los datos sean correctos)

Código: python

#!/usr/bin/python

import datetime

## Obtenemos la fecha actual y la devolvemos en una lista   
def fechaActual():
    fecha = str(datetime.date.today())
    fecha = fecha.split('-')
    return fecha

## Calculamos la edad
def calcularEdad(fechaUsuario):
    fechaHOY = fechaActual()
    fechaUsuario = fechaUsuario.split('-')
    edad = int(fechaHOY[0]) - int(fechaUsuario[0])
    if int(fechaUsuario[1]) > int(fechaHOY[1]):
edad -= 1
    elif int(fechaUsuario[2]) > int(fechaHOY[2]):
          edad -= 1
    return edad

print "###########################"
print "# Code de ZomWeed -PYTHON #"
print "#-------------------------#"
print "#    (Calculo-de-Edad)    #"
print "###########################"
fechaUsuario = raw_input("-> Porfavor, indique una fecha (AA-MM-DD)")
print "La edad es -> ",calcularEdad(fechaUsuario)


por cierto blozzter, la forma en la que compruebas la fecha deberias revisarla porque no funcá correctamente, si introduces 155-12-06 te calcula la edad  :)

Editado: oye una pregunta como podria llamar con import a un fichero que tiene la estructura de una clase en python. Estoy probando con import y el fichero pero no me funciona.

Saludos
Por cada error que se le atribuye a una PC siempre se encuentran al menos dos errores humanos: el de culpar a la PC y el de confiar en ella.

Agosto 18, 2011, 05:47:57 PM #15 Ultima modificación: Agosto 18, 2011, 05:53:44 PM por blozzter
horrorc0re, me gustó mucho tu code  ;D

y con respecto a tu pregunta, no sé como trabajar con clases. lo siento.



saludos.


edito: 

Código: php

###########################
# Code de ZomWeed -PYTHON #
#-------------------------#
#    (Calculo-de-Edad)    #
###########################
-> Porfavor, indique una fecha (AA-MM-DD)1969-02-19
La edad es ->  41



si te fijas, en ese caso el paciente tendría 42 años, no 41.  :P


espero la corrección ;)
¡< blozzter >!

gracias blozzter, me alegro de que te guste.

He mirado la fecha y ami si que me sale 42 :D nose porque te habrá salido 41...

Citar
Editado: oye una pregunta como podria llamar con import a un fichero que tiene la estructura de una clase en python. Estoy probando con import y el fichero pero no me funciona.
me contesto yo mismo xDD
from <Fichero> import <NombredelaClase>   

En fichero solo ponemos el nombre, nose si habra otro metodo para invocar la clase.

ahora estoy tirando de otro de los programas mas trillados para aprender ... agenda PYTHON  :D mas que nada para practicar con clases y funciones, dentro de poco lo cuelgo y le hechais un vistazo

Saludos
Por cada error que se le atribuye a una PC siempre se encuentran al menos dos errores humanos: el de culpar a la PC y el de confiar en ella.

buenas!

acabo de terminar la agenda en python, no tiene mucha utilidad mas que la de aprender con el codigo  ;D peroo bueno me sirvio para mas o menos ir entrando en las clases de python.

Son dos ficheros No tienes permitido ver los links. Registrarse o Entrar a mi cuenta que contiene las clases y No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, el main.
No comprueba los datos introducidos aunque si he comprobado que los indices esten dentro del rango del array.
Solo he trabajado con una agenda porque no he visto necesario meterle mas, cuando aprenda ficheros lo mismo ya me dejo llevar un poco mas y la perfilo xDD se que es un aporte muy simplón pero si a alguien le sirve para aprender un poco mas de python de una forma mas basica, perfecto!.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Código: python

#/usr/bin/python


## Clase para gestionar los contactos ##
class Contacto():
def __init__(self, nombre, direccion, telefono, email):
        self.nombreContacto = nombre
self.dirContacto = direccion
self.tlfnContacto = telefono
self.emailContacto = email

## setters - Funciones para cambiar el valor de las variables ##
def setNombre(self, nombre):
self.nombreContacto = nombre

def setDireccion(self, direccion):
self.dirContacto = direccion

def setTelefono(self, telefono):
self.tlfnContacto = telefono

def setEmail(self, email):
self.emailContacto = email

## getters - Funciones para conseguir el valor de las variables ##
def getNombre(self):
return self.nombreContacto

def getDireccion(self):
return self.dirContacto

def getTelefono(self):
return self.tlfnContacto

def getEmail(self):
return self.emailContacto

## Clase para gestionar la agenda ##
class Agenda():
lstContactos = []

def getContactos(self):
return self.lstContactos

def setContactos(self, lstContactos):
self.lstContactos = lstContactos

def nuevoContacto(self,contacto):
self.lstContactos.append(contacto)

def borrarContacto(self,indice):
del self.lstContactos[indice]


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Código: python

#!/usr/bin/python

from ClasesAgenda import Agenda, Contacto
import os

##---> VARIABLES <---##
agenda = Agenda()

##---> FUNCIONES <---##

def imprimirContactos(lstContactos): ## Mostramos todos los contactos ##
for indice in range(len(lstContactos)):
print "-> ",indice,"- Nombre:",lstContactos[indice].getNombre(),"-- Direccion:",lstContactos[indice].getDireccion(),"-- Telefono:",lstContactos[indice].getTelefono(),"-- Email:",lstContactos[indice].getEmail()

## MENU ##
while True:
os.system("clear") ## Nos ayuda a limpiar la pantalla
print "#! - ###################### - !#"
print "#! Code por ZomWeed - PYTHON  !#"
print "--------------------------------"
print "#!     Agenda de Contactos    !#"
print "--------------------------------"
print "[1] -> Nuevo Contacto "
print "[2] -> Borrar Contacto "
print "[3] -> Listar Contacto "
print "[4] -> Modificar Contacto "
print "[0] -> Salir "
opcion = input("-><- Elija una opcion...")
if opcion != 0:
if opcion == 1:
## Recogemos los datos necesario para crear un nuevo contacto ##
os.system("clear")
print "[+] Nuevo Contacto: Informacion ->"
print ". ------------------------------ ."
nombre = raw_input("-> Cual es su nombre?")
direccion = raw_input("-> Cual es su direccion?")
telefono = raw_input("-> Cual es su telefono?")
email = raw_input("-> Cual es su email?")
contacto = Contacto(nombre,direccion,telefono,email)
agenda.nuevoContacto(contacto)
elif opcion == 2 and len(agenda.getContactos()) > 0:
## Mostramos todos los contactos y eliminamos segun nos indique el usuario ##
while True:
os.system("clear")
print "[+] Eliminar Contacto: Lista de Contactos ->"
print ". ---------------------------------------- ."
imprimirContactos(agenda.getContactos()) ## Mostramos los contactos
print "-> (s) : Salir"
indiceEliminar = raw_input("-><- Elija un contacto... ")
if indiceEliminar == 's' or indiceEliminar == 'S': ## Comprobamos la opcion elegida por el usuario
break
if int(indiceEliminar) >= len(agenda.getContactos()):
raw_input("U_u ERROR: indice incorrecto, pulse una tecla para continuar")
else:
agenda.borrarContacto(int(indiceEliminar)) ## Hacemos un casting a entero ya que raw_input nos devuelve string
elif opcion == 3:
## Mostramos todos los contactos ##
os.system("clear")
print "[+] Listar Contactos: Lista de Contactos ->"
print ". --------------------------------------- ."
imprimirContactos(agenda.getContactos())
raw_input("-><- Listados de los contactos actuales almacenados,pulse una tecla para continuar")
elif opcion == 4:
## Mostramos todos los contactos, el usuario indicara el contacto y registro a modificar ##
while True:
os.system("clear")
print "[+] Modificar Contacto: Seleccion del contacto ->"
print ". --------------------------------------------- ."
imprimirContactos(agenda.getContactos()) ## Mostramos los contactos
print "-> (s) : Salir"
indiceContacto = raw_input("-><- Elija un contacto... ")
if indiceContacto == 's' or indiceContacto == 'S':
break
os.system("clear")
if int(indiceContacto) > len(agenda.getContactos()):
raw_input("U_u ERROR: indice incorrecto, pulse una tecla para continuar")
else:
print "[+] Modificar Contacto: Registros a modificar ->"
print ". -------------------------------------------- ."
print "-> 1 - Nombre"
print "-> 2 - Direccion"
print "-> 3 - Telefono"
print "-> 4 - Email"
opcionRegistro = input("-><- Elija un contacto... ")
if opcionRegistro == 1:
nombre = raw_input("\nEscriba el nuevo nombre: ")
lstContactos = agenda.getContactos()
lstContactos[int(indiceContacto)].setNombre(nombre) ## Hacemos un casting ya que raw_input nos devuelve string
agenda.setContactos(lstContactos)
elif opcionRegistro == 2:
direccion = raw_input("\nEscriba la nueva direccion: ")
lstContactos = agenda.getContactos()
lstContactos[int(indiceContacto)].setDireccion(direccion)
agenda.setContactos(lstContactos)
elif opcionRegistro == 3:
telefono = raw_input("\nEscriba el nuevo telefono: ")
lstContactos = agenda.getContactos()
lstContactos[int(indiceContacto)].setTelefono(telefono)
agenda.setContactos(lstContactos)
elif opcionRegistro == 4:
email = raw_input("\nEscriba el nuevo nombre")
lstContactos = agenda.getContactos()
lstContactos[int(indiceContacto)].setEmail(email)
agenda.setContactos(lstContactos)
elif opcion == 0:
print "\nSaludos Terricola [^_^]"
break


Saludos
Por cada error que se le atribuye a una PC siempre se encuentran al menos dos errores humanos: el de culpar a la PC y el de confiar en ella.

Noviembre 02, 2011, 11:13:18 AM #18 Ultima modificación: Noviembre 02, 2011, 07:08:42 PM por blozzter
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...

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
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...


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)
¡< blozzter >!