HOWTO · Python
Verifica che la variabile sia una stringa o meno in Python
Questo tutorial mostra come verificare se una variabile è una stringa in Python
In questa pagina
Il tipo di dati stringa viene utilizzato per rappresentare una raccolta di caratteri. Questo tutorial discuterà come verificare se una variabile è di tipo stringa o meno.
Usa la funzione type() per verificare se una variabile è una stringa o meno
La funzione type() restituisce il tipo di classe della variabile passata. Il codice seguente mostra come utilizzare questa funzione per verificare se una variabile è una stringa o meno.
value = "Yes String"
if type(value) == str:
print("True")
else:
print("False")
Produzione:
True
Tuttavia, vale la pena notare che questo metodo è generalmente sconsigliato ed è definito unidiomatico in Python. Il motivo è che l’operatore == confronta la variabile solo per la classe stringa e restituirà False per tutte le sue sottoclassi.
Usa la funzione isinstance() per verificare se una variabile è una stringa o meno
È quindi incoraggiato l’uso della funzione isinstance() rispetto al tradizionale type(). La funzione isinstance() controlla se un oggetto appartiene alla sottoclasse specificata. Il seguente frammento di codice spiegherà come possiamo usarlo per verificare la presenza di oggetti stringa.
value = "Yes String"
if isinstance(value, str):
print("True")
else:
print("False")
Produzione:
True
In Python 2, possiamo usare la classe basestring, che è una classe astratta per str e unicode, per verificare se un oggetto è un’istanza di str o unicode. Per esempio,
value = "Yes String"
if isinstance(value, basestring):
print("True")
else:
print("False")
Produzione:
True
Per usare il metodo sopra in Python 3, possiamo usare il modulo six. Questo modulo ha funzioni che ci permettono di scrivere codice compatibile sia con Python 2 che con 3.
La funzione string_types() restituisce tutti i possibili tipi di dati stringa. Per esempio,
import six
value = "Yes String"
if isinstance(value, six.string_types):
print("True")
else:
print("False")
Produzione:
True