Aquí va mi código para los que quieran leerlo: def time(seg: float) -> str: return f"El tiempo equivale a: {round(seg/3600, 2)} horas, {round(seg/60, 2)} minutos y {int(seg)} segundos
La suma total del tiempo es: {int(seg/3600)} horas con {int((seg//60) % 60)} minutos y {int(seg % 60)} segundos" print(time(float(input("Ingrese la cantidad de segundos >>> "))))
Yo hice las divisiones un tanto diferente, pero igual cumple: def seg_a_horas_minutos_segundos(seg): ''' Convierte segundos en horas, minutos y segundos ''' h=seg//3600 m=(seg%3600)//60 s=(seg%3600)%60 return h,m,s seg=int(input("Digite el número se seg a evaluar: ")) horas,minutos,segundos=seg_a_horas_minutos_segundos(seg) print("Se tiene:",horas,"horas",minutos,"minutos y",segundos,"segundos"
Le añadi algo de codigo para mejorar la visibilidad, ya que si las horas, minutos o segundos son menores a 9, se muestra un solo digito y se afea el formato, por lo que con la modificacion que añadi todos los valores inferiores a 9 se mostrarian como 01,02,03 etc.... Dejo codigo: def convertir_segundos(s): minutos_enteros = s//60 segundos_resto = s % 60 horas = minutos_enteros//60 minutos_resto = minutos_enteros % 60 return horas, minutos_resto, segundos_resto h = "" m = "" s = "" segundos = int(input("Ingrese segundos: ")) tiempo = convertir_segundos(segundos) if tiempo[0] < 9: h = "0", str(tiempo[0]) h = f"{h[0]}{h[1]}" else: h = tiempo[0] if tiempo[1] < 9: m = "0", str(tiempo[1]) m = f"{m[0]}{m[1]}" else: m = tiempo[1] if tiempo[2] < 9: s = "0", str(tiempo[2]) s = f"{s[0]}{s[1]}" else: s = tiempo[2] print(f"Tiempo= {h}:{m}:{s}")
Mi intento:
def horas_minutos_segudos(segundos):
horas = segundos // 3600
segundos_resto = segundos % 3600
minutos = segundos_resto // 60
segundos_restantes = segundos_resto % 60
return horas, minutos, segundos_restantes
segundos = int(input("Introduce tiempo en segundos: "))
h, m, s = horas_minutos_segudos(segundos)
print(f"{segundos} segundos son: {h} horas, {m} minutos y {s} segundos.")
Gracias me salvaste no lograba entender con funciones me confunde y más con los punteros y cosas cómo está &
Aquí va mi código para los que quieran leerlo:
def time(seg: float) -> str:
return f"El tiempo equivale a: {round(seg/3600, 2)} horas, {round(seg/60, 2)} minutos y {int(seg)} segundos
La suma total del tiempo es: {int(seg/3600)} horas con {int((seg//60) % 60)} minutos y {int(seg % 60)} segundos"
print(time(float(input("Ingrese la cantidad de segundos
>>> "))))
Yo hice las divisiones un tanto diferente, pero igual cumple:
def seg_a_horas_minutos_segundos(seg):
''' Convierte segundos en horas, minutos y segundos '''
h=seg//3600
m=(seg%3600)//60
s=(seg%3600)%60
return h,m,s
seg=int(input("Digite el número se seg a evaluar: "))
horas,minutos,segundos=seg_a_horas_minutos_segundos(seg)
print("Se tiene:",horas,"horas",minutos,"minutos y",segundos,"segundos"
Le añadi algo de codigo para mejorar la visibilidad, ya que si las horas, minutos o segundos son menores a 9, se muestra un solo digito y se afea el formato, por lo que con la modificacion que añadi todos los valores inferiores a 9 se mostrarian como 01,02,03 etc.... Dejo codigo:
def convertir_segundos(s):
minutos_enteros = s//60
segundos_resto = s % 60
horas = minutos_enteros//60
minutos_resto = minutos_enteros % 60
return horas, minutos_resto, segundos_resto
h = ""
m = ""
s = ""
segundos = int(input("Ingrese segundos: "))
tiempo = convertir_segundos(segundos)
if tiempo[0] < 9:
h = "0", str(tiempo[0])
h = f"{h[0]}{h[1]}"
else:
h = tiempo[0]
if tiempo[1] < 9:
m = "0", str(tiempo[1])
m = f"{m[0]}{m[1]}"
else:
m = tiempo[1]
if tiempo[2] < 9:
s = "0", str(tiempo[2])
s = f"{s[0]}{s[1]}"
else:
s = tiempo[2]
print(f"Tiempo= {h}:{m}:{s}")