|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2009
Messaggi: 5572
|
Controllare se valore inserito è intero - Python
Come si può chiedere ad un utente un valore e se esso non è un intero restituire un errore?
Grazie in anticipo |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Questo potrebbe esserti d'aiuto http://stackoverflow.com/questions/3...integer-or-not
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jun 2009
Messaggi: 5572
|
però servirebbe che ad una richiesta di input se il valore non è un intero dia un errore e richieda
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Sep 2005
Città: Barcelona
Messaggi: 200
|
Secondo me dovresti prima porti una domanda: per te, 4.0 è un intero o un numero reale? Se lo consideri un reale, allora isinstance dovrebbe esser piu che sufficiente.
Se lo consideri intero, allora potresti usar qualcosa come int(x) == x. In questo caso, se la parte reale è nulla, la condizione è vera.
__________________
Code without tests is broken by design. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jun 2009
Messaggi: 5572
|
ad esempio inserendo un carattere restituisce un errore
ad esempio "print inserire 0 o 1" l' utente digita f richiede "print inserire 0 o 1" l' utente digita 0 prosegue |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jun 2009
Messaggi: 5572
|
l' errore lo dà comunque
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12919
|
Quote:
Codice:
c = None
while c!='0' and c!='1':
print "Inserire 0 o 1: "
c = raw_input()
# dopo il ciclo while sei sicuro che c conterrà 0 o 1 e puoi trasformarlo in intero
i = int(c)
...
|
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jun 2009
Messaggi: 5572
|
bene,quindi
Codice:
c = None
while c!='0' and c!='1':
print "Inserire 0 o 1: "
c = raw_input()
print type(c)
c=int(c)
print type(c)
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Sono certo ci sia un modo migliore del mio, però per ora questo credo faccia al caso tuo:
Codice:
while True:
try:
intero = int(float(raw_input("Numero: ")))
break
except ValueError:
print "Devi inserire un numero intero"
print intero
Se inserisci altro, ti costringe a reinserire il numero. Se vuoi che il numero inserito sia anche minore di 180,basta inserire un if prima del break. EDIT: È necessario passare da float e poi int perchè non si può convertire un float scritto come stringa in intero. Tipo '3.0' non può essere convertito in intero direttamente, ma devi prima convertirlo in 3.0. '3.0'-> 3.0 -> 3
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jun 2009
Messaggi: 5572
|
risolto poco fa proprio con il discorso eccezione
grazie comunque |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:55.




















