[python] problemilla con timedelta

Iniciado por tadas, 13 Diciembre 2016, 22:50 PM

0 Miembros y 1 Visitante están viendo este tema.

tadas

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

engel lex

que es x?

el error lo que dice es que no soporta el tipo str como valor x para timedelta
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

tadas

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

engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

BigKaz

#4
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!


tadas

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

engel lex

documentación oficial
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?"))
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

tadas

muchisimas gracias engel lex llevo buscandolo una semana
repito muchas gracias :)