Forum >> Programmazione Python >> Scripting >> Piccolo problema

Pagina: 1

Salve anzitutto preciso che ho appena iniziato con python e stavo facendo un po' di dimestichezza quando mi imbatto in questo problema (vedi immagine). Vi ringrazio in anticipo per la risposta.
Ps: se sono nella sezione sbagliata spostate pure la discussione.




Allegati
Ciao caro, ti presento un amico type(). Con questo comando potrai stabilire il tipo di oggetto che stai manipolando. Nel tuo caso input() cosa restituisce?
>>> a = input("primo numero?")
>>> type(a)
<class 'str'>
Ecco svelato l'arcano, rispetto a python 2.x, input() non restituisce un intero (int), ma una stringa (str). Quindi se provi a sommare due stringhe ottieni esattamente quello che hai allegato.

Hai svariati modi per dire a Mr.Python di aiutarti, il più semplice è esplicitare tutto con un bel int(valore) che puoi applicare sul risultato o direttamente sull'input().

NOTA: Attento però, perché se all'input() non passi un numero ma altro, avrai un po' di problemi ed andrebbero, anzi devi, gestite le varie eccezioni. Potresti mettere un ciclo condizionale che ti verifica il tipo di dato inserito, usare eval(), insomma il tuo limite è la fantasia...

Tornando a noi facciamo due esempi del tutto equivalenti e che hanno però il difetto entrambi di non controllare il tipo di dato inserito:
>>> a = int(input("primo numero? "))
primo numero? 5
>>> b = int(input("secondo numero? "))
secondo numero? 7
>>> print(a + b)
12

oppure

>>> a = input("primo numero? ")
primo numero? 5
>>> b = input("secondo numero? ")
secondo numero? 7
>>> print(int(a)+int(b))
12
Ti è tutto chiaro?

Ciao.
Daniele
grazie mille ;)


Pagina: 1



Esegui il login per scrivere una risposta.