Verifica che la variabile sia una stringa o meno in Python

Manav Narula 30 gennaio 2023
  1. Usa la funzione type() per verificare se una variabile è una stringa o meno
  2. Usa la funzione isinstance() per verificare se una variabile è una stringa o meno
Verifica che la variabile sia una stringa o meno in Python

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
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