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

 

 


Tema destacado: Curso de javascript por TickTack


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

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Ayuda con tarea en Python
« en: 4 Septiembre 2019, 03:08 am »

Estimados(as) de Foro elhacker,

Antes que nada agradecer que me hayan aceptado en su comunidad.
Les cuento soy estudiante de Ingeniería Informática y tengo un ramo de Python al cual me han asignado una tarea de una plantilla python.py con 12 funciones que agregar y mediante eso me piden diversas funciones.
En una de ellas me piden lo siguiente,
- Debo calcular los minutos de vida de una persona, ingresando la fecha actual y fecha de nacimiento en un formato DDMMAAAA sin considerar el/los años bisiestos.

Me debe devolver en el print esto,
 print(minutos_vivido(25072017,11101982)) si agrego esa fecha de nacimiento vs la fecha actual, me debe devolver en una tupla minutos vividos, horas y total día.

Las 11 funciones anteriores me costaron pero ya las tengo echas, solo me falta esa.

Y la estructura es así.

def min_vividos(fechanac,fechaact):
" Aquí van las variables y la función"

if __name__ = ' __main__ '

print("Tus minutos vividos son : " ,end="")
print(min:vividos(03092019 , 20111990)

Espero me entiendan,
De antemano ya agradezco sus sugerencias.


En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.042



Ver Perfil
Re: Ayuda con tarea en Python
« Respuesta #1 en: 4 Septiembre 2019, 05:39 am »

Saludos,

- Puedes crear objetos DateTime en python a través de una String con ese formato pegado que tienes. Luego hacer la resta entre las DateTime y obtienes un objeto TimeDelta, a partir de este puedes obtener el total de días y convertir esos días a horas y minutos:

Código
  1. import datetime
  2.  
  3. fechanac = datetime.datetime.strptime("11101982", "%d%m%Y")
  4. fechaact = datetime.datetime.strptime("25072017", "%d%m%Y")
  5.  
  6. delta = fechaact - fechanac
  7.  
  8. dias_vividas    = delta.days
  9. horas_vividas   = dias_vividas * 24
  10. minutos_vividos = horas_vividas * 60
  11.  
  12. print(dias_vividas)
  13. print(horas_vividas)
  14. print(minutos_vividos)

- Aunque dependerá del tipo de tarea, algunas veces se pide hacer los cálculos sin utilizar librerías haciéndolo todo a mano, de todas maneras la idea es esa.

- Por cierto, algún conocer de python sabrá porque no muestra nada al hacer un dir(fechanac) o dir(delta) o dir(dias_vividos) ? Tuve que ir a la moustruosa documentación de python para ver los atributos y métodos de datetime y timedelta XD.


En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Ayuda con tarea en Python
« Respuesta #2 en: 4 Septiembre 2019, 13:45 pm »

 EdePC:
           
Código
  1. fechanac = datetime.datetime.strptime("11101982", "%d%m%Y")

Citar
no muestra nada al hacer un dir(fechanac)

¿estás seguro que no muestra nada? seguro devuelve una lista con las métodos integrados

ahora si querés más info, ¿has probado con?:

Código
  1. help(fechanac)
En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.042



Ver Perfil
Re: Ayuda con tarea en Python
« Respuesta #3 en: 4 Septiembre 2019, 15:31 pm »

Citar
C:\Users\EdSon\Desktop\python-3.7.4-embed-amd64>type ..\vividos.py
import datetime

fechanac = datetime.datetime.strptime("11101982", "%d%m%Y")
fechaact = datetime.datetime.strptime("25072017", "%d%m%Y")

dir(fechanac)
help(fechanac)

delta = fechaact - fechanac

dir(delta)
help(delta)

dias_vividas    = delta.days
horas_vividas   = dias_vividas * 24
minutos_vividos = horas_vividas * 60

dir(dias_vividas)
help(dias_vividas)

print(dias_vividas)
print(horas_vividas)
print(minutos_vividos)

C:\Users\EdSon\Desktop\python-3.7.4-embed-amd64>python ..\vividos.py
Traceback (most recent call last):
  File "..\vividos.py", line 7, in <module>
    help(fechanac)
NameError: name 'help' is not defined

Citar
C:\Users\EdSon\Desktop\python-3.7.4-embed-amd64>type ..\vividos.py
import datetime

fechanac = datetime.datetime.strptime("11101982", "%d%m%Y")
fechaact = datetime.datetime.strptime("25072017", "%d%m%Y")

dir(fechanac)
# help(fechanac)

delta = fechaact - fechanac

dir(delta)
# help(delta)

dias_vividas    = delta.days
horas_vividas   = dias_vividas * 24
minutos_vividos = horas_vividas * 60

dir(dias_vividas)
# help(dias_vividas)

print(dias_vividas)
print(horas_vividas)
print(minutos_vividos)

C:\Users\EdSon\Desktop\python-3.7.4-embed-amd64>python ..\vividos.py
12706
304944
18296640

- Jeje, help() funciona si instalo Python, pero dir() únicamente funciona si ejecuto línea a línea en la Python Shell, supongo que solo sirve en depuración y no en archivos ¿?

Citar
>>> import datetime
>>> fechanac = datetime.datetime.strptime("11101982", "%d%m%Y")
>>> dir(fechanac)
['__add__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rsub__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', 'astimezone', 'combine', 'ctime', 'date', 'day', 'dst', 'fold', 'fromisoformat', 'fromordinal', 'fromtimestamp', 'hour', 'isocalendar', 'isoformat', 'isoweekday', 'max', 'microsecond', 'min', 'minute', 'month', 'now', 'replace', 'resolution', 'second', 'strftime', 'strptime', 'time', 'timestamp', 'timetuple', 'timetz', 'today', 'toordinal', 'tzinfo', 'tzname', 'utcfromtimestamp', 'utcnow', 'utcoffset', 'utctimetuple', 'weekday', 'year']
>>>
En línea

Angelox1985:.

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Ayuda con tarea en Python
« Respuesta #4 en: 4 Septiembre 2019, 17:44 pm »

Estimados,

Muchas gracias por responder a mi duda.
Pero resulta que mi profesora pide que no se realice el programa con las librerías del tiempo, sino más bien con el "while", "if" o "for" (Ya que estamos viendo recursiones y recursividad) , es por ello que he buscado información en foros y webs sobre ello sin éxito.
Es por ello que me ha tocado difícil de crear el código para la ejecución del programa.

Y debido a ello acudo a Ustedes como última opción.

Saludos Cordiales.
« Última modificación: 4 Septiembre 2019, 18:10 pm por Angelox1985:. » En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Ayuda con tarea en Python
« Respuesta #5 en: 4 Septiembre 2019, 19:11 pm »

Citar
Pero resulta que mi profesora pide que no se realice el programa con las librerías del tiempo, sino más bien con el "while", "if" o "for" (Ya que estamos viendo recursiones y recursividad)
bueno , ¿y qué has intentando?


EdePC:

con print debería funcionar aún desde un archivo

Código
  1. print(dir(dias_vividas))
  2. print(help(dias_vividas))

Citar
Jeje, help() funciona si instalo Python

esta parte no la entiendo, ¿cómo ejecutas el script sin python?
« Última modificación: 4 Septiembre 2019, 19:29 pm por tincopasan » En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.042



Ver Perfil
Re: Ayuda con tarea en Python
« Respuesta #6 en: 5 Septiembre 2019, 02:26 am »

- Ya decía yo que la tarea se tenía que hacer a mano, sin embargo la metodología ya la tienes, para darte una ayuda adicional tienes el siguiente código que calcula los días vividos, revísalo junto con el código anterior para obtener las horas y minutos vividos:

Código
  1. fec_nac = "11101982"
  2. fec_act = "25072017"
  3.  
  4. yea_nac = fec_nac[4:]  # => 1982
  5. mon_nac = fec_nac[2:4] # => 10
  6. day_nac = fec_nac[:2]  # => 11
  7.  
  8. yea_act = fec_act[4:]  # => 2017
  9. mon_act = fec_act[2:4] # => 07
  10. day_act = fec_act[:2]  # => 25
  11.  
  12. yea_dif = int(yea_act) - int(yea_nac) # => 35
  13. mon_dif = int(mon_act) - int(mon_nac) # => -3
  14. day_dif = int(day_act) - int(day_nac) # => 14
  15.  
  16. day_viv = (yea_dif * 365) + (mon_dif * 30) + day_dif
  17.  
  18. print(day_viv) # => 12699

- Ya es cosa tuya adaptarlo a los requerimientos específicos de tu tarea. year = año, month = mes, day = día, fec = fecha, etc, esto se entiende bien creo yo...

---------------------

- Con respecto a mis líos con dir() y help(), pues me había descargado la versión Embed de Python, esa que solo tiene lo necesario para ejecutar .py's (.zip de ~14MB, descomprimido 25MB), no viene con la ayuda, supongo que por esto help() no funcionaba.

- Una vez instalado python ya funciona help() y print(dir(fechanac)) también funciona XD. He estado probando IDEs para python ya que yo voy aprendiendo mientras intento ayudar, estoy viendo que sublime me esta quedando muy corto para esto de java y python, netbeans es algo pesado y tener que crear todo un proyecto para editar y depurar correctamente un simple fichero .java o .py es un lío, luego probé PyCharm, tiene su peso pero es más rápido que netbeans, tiene buen intellisense pero el contraste de sus colores en tema obscuro es horrible.

- Al final me estoy decantando por Visual Studio Code, aunque tiene que descargar Extensiones para trabajar correctamente, funciona bien y es rápido para editar ficheros individuales que es lo que quiero (no "obliga" a crear un proyecto), supongo que como migro de Sublime me siento más cómodo con VSC.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con Tarea en C# « 1 2 »
.NET (C#, VB.NET, ASP)
shamankaly 17 15,121 Último mensaje 28 Abril 2009, 06:44 am
por 410n5o
Necesito hacer una tarea en python
Foro Libre
Victor34 0 1,505 Último mensaje 1 Septiembre 2016, 21:21 pm
por Victor34
C++ - Ayuda con mi tarea!
Programación C/C++
worbus 1 2,795 Último mensaje 3 Febrero 2018, 13:47 pm
por vangodp
Quiero automatizar una tarea con python, pero no se me ocurre que librería usar, necesito ayuda
Scripting
emperie 1 1,870 Último mensaje 18 Diciembre 2022, 08:27 am
por Xyzed
como crear una tarea automatica en el sistema usando python
Scripting
Pedrodudasmaster 1 778 Último mensaje 9 Enero 2024, 21:11 pm
por MCKSys Argentina
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines