|
|
|
|
Strumenti |
25-02-2017, 12:21 | #1 |
Senior Member
Iscritto dal: Mar 2007
Città: Pe-Ch
Messaggi: 19274
|
[python3]verifica tipo carattere/numero inserito
Sto scrivendo un programmino che permette di riconoscere il tipo di carattere/numero immesso in input restituendolo su schermo ma non va, praticamente viene continuamente bypassato il controllo. Ecco il listato.
Codice:
#!/usr/bin/env python3 print("Questo programma verifica il tipo di numero o lettera inserita come input ") print("Scrivi qualcosa:") x=input() if type(x)==int: print("il numero è intero") elif type(x)==float: print("il numero è reale") elif type(x)==complex: print("il numero è complesso") else: print("il valore immesso non è un numero")
__________________
|
25-02-2017, 18:51 | #2 | |
Senior Member
Iscritto dal: Feb 2007
Messaggi: 2510
|
"La" Pythonic way è try/except no if elif ..., ma vabbè type ? OK, REPLiamo
un po': Quote:
Codice:
Python 2.7.13 (default, Dec 21 2016, 07:16:46) [GCC 6.2.1 20160830] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> x = input() 3 >>> type(x) <type 'int'> >>> type(x) == int True Vabbè, prima che passi a java, "googolla" per isinstance vs type in python |
|
26-02-2017, 21:43 | #3 |
Senior Member
Iscritto dal: Mar 2007
Città: Pe-Ch
Messaggi: 19274
|
sono all'abc che differenza esiste? non restituisce sempre la tipologia del dato da trattare?
__________________
|
27-02-2017, 23:15 | #4 |
Senior Member
Iscritto dal: Feb 2007
Messaggi: 2510
|
Terra, terra non usare type, ma isinstance, vedi ad es:
https://stereochro.me/ideas/type-vs-isinstance Ma non dovresti usare neanche isinstance, vedi: http://canonical.org/~kragen/isinstance/ e, affidarti al massimo a try/except, come t'ho già detto nella prima risposta Il tuo codice funzionerebbe in python 2, come vedi di REPL che t'ho postato, ma non funziona più in python 3, in cui input() ti ritorna una str, che devi ovviamente convertire e verificare |
09-03-2017, 14:46 | #5 |
Senior Member
Iscritto dal: Mar 2007
Città: Pe-Ch
Messaggi: 19274
|
grazie
__________________
|
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:33.