Test Foro de elhacker.net SMF 2.1

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

Citarque 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)

Cita de: tadas en 14 Diciembre 2016, 17:58 PM
¿ 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 (python) [Seleccionar]
nombre = input("Cual es tu nombre?")

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 (python) [Seleccionar]

from datetime import datetime, date, time, timedelta
ahora = datetime.now()
x=input ("cuantas horas?")
mashoras = ahora + timedelta(hours=x)
cadena1 = mashoras.strftime("%A %B %d %H:%M:%S %Y" )
print("Hora calculada:", cadena1)


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)

CitarThe 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 (python) [Seleccionar]
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 :)