Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: tadas en 13 Diciembre 2016, 22:50 pm



Título: [python] problemilla con timedelta
Publicado por: tadas en 13 Diciembre 2016, 22:50 pm
consigo que pregunte el valor x que quiero establecer pero al establecerlo salta el error:

File "/home/tadas/Desktop/ensayos/apap.py", line 4, in <module>
    mashoras = ahora + timedelta(hours=x)
TypeError: unsupported type for timedelta hours component: str

ayuda a un novato de 16 años en la programacion  con python
gracias de antemano


Título: Re: [python] problemilla con timedelta
Publicado por: engel lex en 13 Diciembre 2016, 22:58 pm
que es x?

el error lo que dice es que no soporta el tipo str como valor x para timedelta


Título: Re: [python] problemilla con timedelta
Publicado por: tadas en 14 Diciembre 2016, 17:58 pm
x es cualquier numero por ejemplo el 45
(y una pregunta tonta ¿que es el tipo str?(hace dos meses que empece con python))
si pongo en vez de x el numero 45 me sale todo correctamente
entonces mi pregunta seria:
¿ como hacer que te pregunte que numero sumar y lo sume (el momento en el que me salta el error)?
 
gracias por responder


Título: Re: [python] problemilla con timedelta
Publicado por: engel lex en 14 Diciembre 2016, 18:03 pm
str = string (cadenas de letas, texto)

por

Citar
que es x?

me referia a: muestrame exactamente en tu codigo donde le asignas valor a x cuando falla


Título: Re: [python] problemilla con timedelta
Publicado por: BigKaz en 14 Diciembre 2016, 18:10 pm
El tipo (str) es una cadena de caracteres como "hola". Los strings (str) van delimitados por comillas simples o dobles. (Deberías saber que es un string si llevas 2 meses con python)

¿ como hacer que te pregunte que numero sumar y lo sume (el momento en el que me salta el error)?

Puedes usar input (en python 3x) o raw input (en 2.x) para recibir entradas del usuario y poder interactuar con ellas. Puedes asignar una variable con un input, por ejemplo:
Código
  1. nombre = input("Cual es tu nombre?")
  2.  
Esto asignara la variable nombre a la entrada del usuario cuando tu le preguntaste cual era su nombre.

Saludos!



Título: Re: [python] problemilla con timedelta
Publicado por: tadas en 15 Diciembre 2016, 17:39 pm
Código
  1. from datetime import datetime, date, time, timedelta
  2. ahora = datetime.now()
  3. x=input ("cuantas horas?")
  4. mashoras = ahora + timedelta(hours=x)
  5. cadena1 = mashoras.strftime("%A %B %d %H:%M:%S %Y" )
  6. print("Hora calculada:", cadena1)
  7.  
  8.  
me pregunta x y me salta el error
P.D:uso python 3.4.2
Gracias por la atencion


Título: Re: [python] problemilla con timedelta
Publicado por: engel lex en 15 Diciembre 2016, 17:44 pm
documentación oficial
https://docs.python.org/3/library/functions.html#input (https://docs.python.org/3/library/functions.html#input)

Citar
The function then reads a line from input, converts it to a string (stripping a trailing newline), and returns that

La función leer una linea desde el input, la convierte en texto (quitando el salto de linea final) y retorna eso

debes reconvertirlo en entero usando la funcion int()

Código
  1. x=int(input ("cuantas horas?"))


Título: Re: [python] problemilla con timedelta
Publicado por: tadas en 15 Diciembre 2016, 21:33 pm
muchisimas gracias engel lex llevo buscandolo una semana
repito muchas gracias :)