Controlla se l'input è intero in Python

Manav Narula 30 gennaio 2023
  1. Usa la funzione int() per verificare se l’input è un numero intero in Python
  2. Utilizzare il metodo isnumeric() per verificare se l’input è un numero intero o meno
  3. Usa le espressioni regolari per verificare se l’input è un numero intero in Python
Controlla se l'input è intero in Python

Nel mondo della programmazione, lavoriamo molto frequentemente con l’input dell’utente. Python ha la funzione input() disponibile, che permette all’utente di inserire l’input desiderato. A volte potremmo volere l’input di un tipo specifico.

Tuttavia, questa funzione converte l’input dell’utente in una stringa prima di compilarlo con il programma. Pertanto, non è semplice utilizzare i metodi tradizionali per verificare tipi specifici con l’input dell’utente e dobbiamo verificare se la stringa contiene numeri o meno essenzialmente.

In questo tutorial, discuteremo come verificare se l’input immesso dall’utente è di tipo intero o meno.

Usa la funzione int() per verificare se l’input è un numero intero in Python

La funzione int() può convertire un dato valore intero di stringa in un tipo intero. Genera un errore se il valore desiderato non è un numero intero e non può essere convertito. Possiamo utilizzare questo metodo per verificare se la stringa dell’utente è un numero intero o meno, come mostrato di seguito.

user_input = input("Enter the input ")

try:
    int(user_input)
    it_is = True
except ValueError:
    it_is = False

print(it_is)

Produzione:

Enter the input 15
True

Nota l’uso del blocco try...except in questo metodo. Viene utilizzato molto frequentemente quando si gestiscono le eccezioni in Python.

Utilizzare il metodo isnumeric() per verificare se l’input è un numero intero o meno

Il metodo isnumeric() della stringa restituisce True se la stringa contiene solo numeri. Tuttavia, vale la pena notare che fallisce con valori negativi. Questo perché restituisce automaticamente False quando incontra il segno - in numeri interi negativi.

Il codice seguente mostra come possiamo usare questa funzione per verificare se una stringa contiene numeri interi in Python.

user_input = input("Enter the input ")

print(user_input.isnumeric())

Produzione:

Enter the input 10
True

Possiamo anche usare la funzione isdigit() al posto di isnumeric(); ha anche le stesse limitazioni di questo metodo.

Usa le espressioni regolari per verificare se l’input è un numero intero in Python

Possiamo anche usare le espressioni regolari per creare un pattern che restituisce True ogni volta che incontra numeri interi in una stringa. Possiamo anche modificare il pattern per assicurarci che funzioni per valori negativi. Per esempio,

import re

user_input = input("Enter the input ")

num_format = re.compile(r"^\-?[1-9][0-9]*$")
it_is = re.match(num_format, user_input)

if it_is:
    print("True")
else:
    print("False")

Produzione:

Enter the input -15
True

Di seguito è riportata la spiegazione del modello di espressione regolare - ^\-?[1-9][0-9]*$.

  • ^ è l’inizio della stringa
  • \-? indica che questo numero potrebbe essere negativo o positivo.
  • [1-9] è la prima cifra del numero. Deve essere un numero compreso tra 1 e 9, ma non 0.
  • [0-9]* indica le seguenti cifre. Il numero di cifre potrebbe essere qualsiasi, incluso 0.
  • $ è la fine della stringa.
Autore: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Articolo correlato - Python String

Articolo correlato - Python Input