Autor
|
Tema: Ayuda con tarea en Python (Leído 4,172 veces)
|
Angelox1985:.
Desconectado
Mensajes: 2
|
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
|
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: import datetime fechanac = datetime.datetime.strptime("11101982", "%d%m%Y") fechaact = datetime.datetime.strptime("25072017", "%d%m%Y") delta = fechaact - fechanac dias_vividas = delta.days horas_vividas = dias_vividas * 24 minutos_vividos = horas_vividas * 60 print(dias_vividas) print(horas_vividas) 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
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
EdePC: fechanac = datetime.datetime.strptime("11101982", "%d%m%Y")
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?: help(fechanac)
|
|
|
En línea
|
|
|
|
EdePC
|
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
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 ¿? >>> 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
Mensajes: 2
|
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
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
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 print(dir(dias_vividas)) print(help(dias_vividas))
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
|
- 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: fec_nac = "11101982" fec_act = "25072017" yea_nac = fec_nac[4:] # => 1982 mon_nac = fec_nac[2:4] # => 10 day_nac = fec_nac[:2] # => 11 yea_act = fec_act[4:] # => 2017 mon_act = fec_act[2:4] # => 07 day_act = fec_act[:2] # => 25 yea_dif = int(yea_act) - int(yea_nac) # => 35 mon_dif = int(mon_act) - int(mon_nac) # => -3 day_dif = int(day_act) - int(day_nac) # => 14 day_viv = (yea_dif * 365) + (mon_dif * 30) + day_dif 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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda con Tarea en C#
« 1 2 »
.NET (C#, VB.NET, ASP)
|
shamankaly
|
17
|
15,910
|
28 Abril 2009, 06:44 am
por 410n5o
|
|
|
Necesito hacer una tarea en python
Foro Libre
|
Victor34
|
0
|
1,707
|
1 Septiembre 2016, 21:21 pm
por Victor34
|
|
|
C++ - Ayuda con mi tarea!
Programación C/C++
|
worbus
|
1
|
3,052
|
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
|
2,222
|
18 Diciembre 2022, 08:27 am
por Xyzed
|
|
|
como crear una tarea automatica en el sistema usando python
Scripting
|
Pedrodudasmaster
|
1
|
1,465
|
9 Enero 2024, 21:11 pm
por MCKSys Argentina
|
|