Controlla se una stringa è intera in Python

Muhammad Waiz Khan 30 gennaio 2023
  1. Controlla se una stringa è intera in Python usando il metodo str.isdigit()
  2. Controlla se una stringa è intera in Python usando il try ... except la gestione delle eccezioni
  3. Controlla se una stringa è intera in Python usando l’espressione regolare
Controlla se una stringa è intera in Python

Questo tutorial spiegherà come verificare se una stringa è un numero intero o meno in Python. Per stringa come numero intero, intendiamo che il valore memorizzato nella stringa rappresenta un numero intero. Possono esserci più metodi per verificarlo e discuteremo di questi metodi con esempi di codice in questo tutorial.

Controlla se una stringa è intera in Python usando il metodo str.isdigit()

Il modo più efficiente per verificare se una stringa è un numero intero in Python è usare il metodo str.isdigit(), poiché richiede il minor tempo per essere eseguito.

Il metodo str.isdigit() restituisce True se la stringa rappresenta un numero intero, altrimenti False. L’esempio di codice seguente mostra come possiamo usarlo.

def if_integer(string):

    if string[0] == ("-", "+"):
        return string[1:].isdigit()

    else:
        return string.isdigit()


string1 = "132"
string2 = "-132"
string3 = "abc"

print(if_integer(string1))
print(if_integer(string2))
print(if_integer(string3))

Produzione:

True
True
False

L’esempio precedente si prende cura anche se nella stringa è presente anche il segno dell’intero, + o -. Se la prima stringa è + o -, controlla se il resto della stringa è un numero intero o meno.

Controlla se una stringa è intera in Python usando il try ... except la gestione delle eccezioni

Un altro metodo è usare try ... except la gestione delle eccezioni sulla funzione int(). Se la stringa è un numero intero, restituirà True e altrimenti False. L’esempio di codice seguente mostra come implementare questo metodo.

def if_integer(string):
    try:
        int(string)
        return True
    except ValueError:
        return False


string1 = "132"
string2 = "-132"
string3 = "abc"

print(if_integer(string1))
print(if_integer(string2))
print(if_integer(string3))

Produzione:

True
True
False

Controlla se una stringa è intera in Python usando l’espressione regolare

Un approccio diverso e interessante che possiamo usare è l’espressione regolare. L’espressione regolare per rappresentare un numero intero sarà [+-]?\d+$, dove [+-]? significa che i segni [+-]? sono opzionali, [+-]?\d+$ significa che dovrebbero esserci una o più cifre nella stringa e $ è la fine della stringa.

Codice di esempio:

import re


def if_integer(string):

    reg_exp = "[-+]?\d+$"
    return re.match(reg_exp, string) is not None


string1 = "132"
string2 = "-132"
string3 = "abc"

print(if_integer(string1))
print(if_integer(string2))
print(if_integer(string3))

Produzione:

True
True
False

Articolo correlato - Python String

Articolo correlato - Python Integer