Autor
|
Tema: Ayuda urgente con problema en python (Leído 3,643 veces)
|
Josueosor
Desconectado
Mensajes: 4
|
Me mandaron a escribir un programa que te pida la hora, luego te pida el formato (am o pm), luego me pedirá cuántas horas al futuro quieres ir y luego a la hora ingresada previamente se le suma las horas al futuro y el formato cambia de AM a pm o viceversa si lo necesita y me lleva comiendo la cabeza por dias, alguien me podría ayudar?
|
|
|
En línea
|
|
|
|
Danielㅤ
|
Hola, por supuesto que te podemos ayudar, déjanos tu código y coméntanos específicamente que problema o duda tenés con tu código.
Si es para pedido para que te hagamos la tarea, no podremos porque estamos de vacaciones.
Saludos
|
|
|
En línea
|
|
|
|
Josueosor
Desconectado
Mensajes: 4
|
hour = input('Enter an hour between 1 and 12: ') h = int(hour) ampm = input('am (1) or pm (2)? ') a = int(ampm) b = 1 c = 2 future = input('how many hours ahead?: ') f = int(future) m = f + h if m <= 12: if a == b: print('New hour am: ') print(m) else: print('New hour pm: ') print(m) elif a == b: new_hour = h + f - 12 print('New hour pm: ') print(new_hour) else: new_hour2 = h + f - 12 print('New hour am:') print(new_hour2)
Está así, el problema es que no me cambia el formato de AM a pm bien [MOD] usar las etiquetas GeSHi para publicar codigo.
Necesito ayuda súper rápido :C [MOD] No hacer doble post. Usa el botón modificar.
|
|
« Última modificación: 28 Enero 2021, 21:34 pm por MCKSys Argentina »
|
En línea
|
|
|
|
MCKSys Argentina
|
Hola! Puedes usar datetime para hacer los cálculos: import datetime hour = input('Enter an hour between 1 and 12: ') if (not hour.isdecimal()) or (int(hour) < 1 or int(hour) > 12): print('You must enter an hour between 1 and 12!') exit(0) h = datetime.datetime(year=2021, month=1, day=1, hour=int(hour)) ampm = input('am (1) or pm (2)? ') if (not ampm.isdecimal()) or (int(ampm) != 1 and int(ampm) != 2): print('You must enter 1 for am or 2 for pm!') exit(0) a = int(ampm) if a == 2: h += datetime.timedelta(hours=12) future = input('how many hours ahead?: ') if not future.isdecimal(): print('You must enter a numer of hours!') exit(0) f = int(future) m = h + datetime.timedelta(hours=f) print('New hour %s: ') print('{:%I %p}'.format(m)) exit(0)
Saludos!
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
Josueosor
Desconectado
Mensajes: 4
|
No funciona, queda así:
Enter an hour between 1 and 12: 12 am (1) or pm (2)? 1 how many hours ahead?: 4 New hour %s: 04 PM
Deberia quedar 4 AM con esas especificaciones
|
|
|
En línea
|
|
|
|
MCKSys Argentina
|
No funciona, queda así:
Enter an hour between 1 and 12: 12 am (1) or pm (2)? 1 how many hours ahead?: 4 New hour %s: 04 PM
Deberia quedar 4 AM con esas especificaciones
Tienes razón, las 12 AM son las 00:00 en formato de 24 horas. Debes corregir el if que agrega 12 horas si es PM, para que agregue 12 horas cuando es am. Osea, cambiar el: if a == 2:
por if a == 1:
EDIT:De paso, deja 1 solo print al final, por ej: print('New hour: {:%I %p}'.format(m))
Saludos!
|
|
« Última modificación: 28 Enero 2021, 23:04 pm por MCKSys Argentina »
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
Josueosor
Desconectado
Mensajes: 4
|
lamentablemente ahora el error es al contrario si no eligo 12 como hora inicial queda asi:
Enter an hour between 1 and 12: 4 am (1) or pm (2)? 1 how many hours ahead?: 4 08 PM
al parecer no fui el unico al que le exploto la cabeza .-.
|
|
|
En línea
|
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
no iba a responder, porque me molesta lo de "urgente", no sé pòrque el foro debería ser ayuda para tareas Y encima con apuros, en fin, como te han ayudado te diré que hay muchas formas de hacerlo, ahora siguiendo tu lógica, no funcionará ni a palos, agrega 50 hs y fijate que pasa, además hay tantas declaraciones inentendible que ni hablar, pero una forma sin uso de bibliotecas sería: hour = int(input('Enter an hour between 1 and 12: ')) ampm = int(input('am (1) or pm (2)? ')) if ampm == 1: ampm ='am' else: ampm = 'pm' future = int(input('how many hours ahead?: ')) m = hour + future tiempo ,hora_nueva= divmod(m,12) if tiempo %2 == 1: if ampm == 'am': ampm = 'pm' elif ampm == 'pm': ampm = 'am' print(f'La nueva hora es: {hora_nueva} {ampm}')
al parecer no fui el unico al que le exploto la cabeza .-. esta huevada no le puede explotar la cabeza a nadie Edit: pegue otro código que también pedían en el foro y también respondí.
|
|
« Última modificación: 29 Enero 2021, 01:42 am por tincopasan »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
PROGRAMA EN PYTHON AYUDA URGENTE
Scripting
|
viki_297
|
1
|
3,217
|
15 Junio 2012, 03:22 am
por criskapunk
|
|
|
ayuda con python urgente!!
Scripting
|
cartylanz
|
2
|
3,247
|
20 Junio 2015, 23:05 pm
por explorer
|
|
|
[AYUDA] Crear tablas con informacion PYTHON URGENTE!
Scripting
|
gramsch
|
1
|
2,074
|
10 Agosto 2015, 23:21 pm
por tincopasan
|
|
|
Necesito ayuda urgente!!! Por favor... Python
Scripting
|
Korina
|
4
|
2,429
|
4 Diciembre 2015, 20:09 pm
por tincopasan
|
|
|
AYUDA URGENTE PYTHON 3 porfa
Programación General
|
papess
|
1
|
2,573
|
13 Agosto 2019, 21:05 pm
por tincopasan
|
|