elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Ayuda urgente con problema en python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda urgente con problema en python  (Leído 3,587 veces)
Josueosor

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Ayuda urgente con problema en python
« en: 28 Enero 2021, 16:54 pm »

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ㅤ


Desconectado Desconectado

Mensajes: 1.843


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: Ayuda urgente con problema en python
« Respuesta #1 en: 28 Enero 2021, 17:23 pm »

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 Desconectado

Mensajes: 4


Ver Perfil
Re: Ayuda urgente con problema en python
« Respuesta #2 en: 28 Enero 2021, 19:11 pm »

Código
  1.  
  2. hour = input('Enter an hour between 1 and 12: ')
  3. h = int(hour)
  4. ampm = input('am (1) or pm (2)? ')              
  5. a = int(ampm)
  6. b = 1
  7. c = 2
  8. future = input('how many hours ahead?: ')
  9. f = int(future)
  10. m = f + h
  11. if m <= 12:
  12.  if a == b:
  13.    print('New hour am: ')
  14.    print(m)
  15.  else:
  16.    print('New hour pm: ')
  17.    print(m)
  18. elif a == b:
  19.  new_hour = h + f - 12
  20.  print('New hour pm: ')
  21.  print(new_hour)
  22. else:
  23.  new_hour2 = h + f - 12
  24.  print('New hour am:')
  25.  print(new_hour2)
  26.  

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.518


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Ayuda urgente con problema en python
« Respuesta #3 en: 28 Enero 2021, 21:33 pm »

Hola!

Puedes usar datetime para hacer los cálculos:

Código
  1. import datetime
  2.  
  3. hour = input('Enter an hour between 1 and 12: ')
  4. if (not hour.isdecimal()) or (int(hour) < 1 or int(hour) > 12):
  5.    print('You must enter an hour between 1 and 12!')
  6.    exit(0)
  7. h = datetime.datetime(year=2021, month=1, day=1, hour=int(hour))
  8.  
  9. ampm = input('am (1) or pm (2)? ')
  10. if (not ampm.isdecimal()) or (int(ampm) != 1 and int(ampm) != 2):
  11.    print('You must enter 1 for am or 2 for pm!')
  12.    exit(0)
  13. a = int(ampm)
  14.  
  15. if a == 2:
  16.    h += datetime.timedelta(hours=12)
  17.  
  18. future = input('how many hours ahead?: ')
  19. if not future.isdecimal():
  20.    print('You must enter a numer of hours!')
  21.    exit(0)
  22. f = int(future)
  23.  
  24. m = h + datetime.timedelta(hours=f)
  25. print('New hour %s: ')
  26. print('{:%I %p}'.format(m))
  27. exit(0)
  28.  

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 Desconectado

Mensajes: 4


Ver Perfil
Re: Ayuda urgente con problema en python
« Respuesta #4 en: 28 Enero 2021, 22:04 pm »

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.518


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Ayuda urgente con problema en python
« Respuesta #5 en: 28 Enero 2021, 22:54 pm »

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:

Código
  1. if a == 2:
  2.  

por

Código
  1. if a == 1:
  2.  


EDIT:

De paso, deja 1 solo print al final, por ej:
Código
  1. print('New hour: {:%I %p}'.format(m))
  2.  
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 Desconectado

Mensajes: 4


Ver Perfil
Re: Ayuda urgente con problema en python
« Respuesta #6 en: 29 Enero 2021, 00:55 am »

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 Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Ayuda urgente con problema en python
« Respuesta #7 en: 29 Enero 2021, 01:33 am »

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:
Código
  1.  
  2. hour = int(input('Enter an hour between 1 and 12: '))
  3. ampm = int(input('am (1) or pm (2)? '))              
  4. if ampm == 1:
  5.    ampm ='am'
  6. else:
  7.    ampm = 'pm'
  8.  
  9. future = int(input('how many hours ahead?: '))
  10. m = hour + future
  11.  
  12. tiempo ,hora_nueva= divmod(m,12)
  13.  
  14.  
  15. if tiempo %2 == 1:
  16.    if ampm == 'am':
  17.        ampm = 'pm'
  18.    elif ampm == 'pm':
  19.        ampm = 'am'
  20.  
  21. print(f'La nueva hora es: {hora_nueva} {ampm}')
  22.  
  23.  
  24.  

Citar
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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
PROGRAMA EN PYTHON AYUDA URGENTE
Scripting
viki_297 1 3,190 Último mensaje 15 Junio 2012, 03:22 am
por criskapunk
ayuda con python urgente!!
Scripting
cartylanz 2 3,223 Último mensaje 20 Junio 2015, 23:05 pm
por explorer
[AYUDA] Crear tablas con informacion PYTHON URGENTE!
Scripting
gramsch 1 2,043 Último mensaje 10 Agosto 2015, 23:21 pm
por tincopasan
Necesito ayuda urgente!!! Por favor... Python
Scripting
Korina 4 2,405 Último mensaje 4 Diciembre 2015, 20:09 pm
por tincopasan
AYUDA URGENTE PYTHON 3 porfa
Programación General
papess 1 2,548 Último mensaje 13 Agosto 2019, 21:05 pm
por tincopasan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines