Python - Programa Hora

 
Vista:

Programa Hora

Publicado por codr (3 intervenciones) el 07/10/2006 23:56:08
Buenas, estoy intentando hacer un programa en el cual, pida al usuario una hora, un minuto, y un segundo, y te muestre por pantalla la hora anterior (es decir, un segundo antes) y la hora posterior ( un segundo despues) con su control de errores y todo.

Pero tengo un pequeño, con el init, que no se si lo hago bien, y sobretodo con las funciones ya que no lo domino aun demasiado, os copio lo que tengo de programa.

#Crear la estructura Hora
class Hora:
def __init__(self, horas, minutos, segundos):
self.h = horas
self.m = minutos
self.s = segundos
#Funcion que pide al usuario la hora.
def demanarHora():
Hora.h = int(raw_input("Hora? : "))
Hora.m = int(raw_input("Minut? : "))
Hora.s = int(raw_input("Segon?: "))
print
#Comprobar que son las horas son válidas
def comprobarHora():
es_correcta = True
if Hora.horas<0 or Hora.horas>23:
print "Error hora"
es_correcta = False
if Hora.minutos<0 or Hora.minutos>59:
print "Error minut"
es_correcta = False
if Hora.segundos<0 or Hora.segundos>59:
print "Error segons"
es_correcta = False
#Funcion que calcula Hora
def calculaAnterior():
if es_correcta:
ha = Hora.horas
ma = Hora.minutos
sa = Hora.segundos
sa = sa - 1
if sa < 0:
sa = 59
ma = ma - 1
if ma < 0:
ma = 59
ha = ha - 1
if ha < 0:
ha = 23

No se que pasa, que el raw_input no me pide nada. Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Programa Hora

Publicado por Daniel (19 intervenciones) el 09/10/2006 02:01:55
La verdad no entiendo bien la pregunta, creo que tratas de decir que el programa no te pide nada, pues eso se da porqeu no invocas a la funcion que hace eso demanarHora(), debe aparecer en alguna parte del programa principal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programa Hora

Publicado por Joaquin (61 intervenciones) el 09/10/2006 10:29:30
Hola:
Tal vez no has llamado a la función demanarHora, pq no pones al final del código demanarHora(), de esta manera se cargará tu función y te pedirá los datos.

Joaquin
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programa Hora

Publicado por clodr (3 intervenciones) el 09/10/2006 14:50:37
He puesto en el final del programa, digamos el main.

demanarHora()

NameError: name 'demanarHora' is not defined

No debo pasarle ningun parametro a la funcion, ya que pregunta al usuario.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programa Hora

Publicado por codr (3 intervenciones) el 09/10/2006 15:09:42
He añadido la clase Hora, que se me habia olvidado.

h = Hora.demanarHora()

TypeError: unbound method demanarHora() must be called with Hora instance as first argument (got nothing instead)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programa Hora

Publicado por Daniel (19 intervenciones) el 10/10/2006 00:22:10
La verdad no entiendo el porque del uso de la clase Hora. Las clases son para programación orientada a objetos, y pues si python es un lenguaje ool, pero cuando se está empezando es mejor usar programación estructurada sin clases que generan objetos que simulan un mundo real.

Tu programa se puede hacer más fácil y legible sin usar clases, ahora que si al llamar a la funcion te sale que que el nombre no esta definido debe ser porque la función esta dentro de la clase, pertence al ambito de la clase, tienes que sacarla de alli y luego llamarla, no sería extraño que se te presente otro error!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar