Skip to content

Creare una stringa in Python (apici singoli, doppi e tripli, str())

Python

In Python, una stringa (str) viene creata racchiudendo il testo tra virgolette singole ‘, virgolette doppie ” e virgolette triple (”’, “””). È anche possibile acquistare oggetti di altri tipi in stringhe con str().

In questo articolo vengono descritti i seguenti contenuti.

  • virgolette singole:'
  • Virgolette:"
  • Differenza tra virgolette singole e virgolette doppie
    • Entrambi i valori sono uguali
    • Le virgolette nelle stringhe vengono gestite in modo diverso
  • virgolette tripla:''', """
    • Più righe
    • Virgolette singole e doppie
    • Rientro
  • Converti altri tipi in stringhe:str()
    • Converti i numeri in stringhe
    • Converti elenchi e dizionari in stringhe

virgolette singole:'

Racchiudi il testo tra virgolette singole ‘ per trasformarlo in una stringa (str).

s = 'abc'
print(s)
# abc

print(type(s))
# <class 'str'>

Virgolette:"

Inoltre, racchiudi il testo tra virgolette ” per trasformarlo in una stringa (str).

s = "abc"
print(s)
# abc

print(type(s))
# <class 'str'>

Differenza tra virgolette singole e virgolette doppie

Entrambi i valori sono uguali

Sia che tu usi le virgolette singole ” o le virgolette doppie “, le stringhe create sono uguali.

s_sq = 'abc'
s_dq = "abc"

print(s_sq == s_dq)
# True

Le virgolette nelle stringhe vengono gestite in modo diverso

In una stringa racchiusa tra virgolette singole ‘, le virgolette doppie ” possono essere utilizzate così come sono, ma le virgolette singole ‘ devono essere precedute da una barra rovesciata e \’. Non ci sono problemi se scrivi \” per virgolette scritte doppie ” .

s_sq = 'a\'b"c'
print(s_sq)
# a'b"c

s_sq = 'a\'b\"c'
print(s_sq)
# a'b"c

In una stringa racchiusa tra virgolette “, le virgolette singole ‘ possono essere utilizzate così come sono, ma le virgolette doppie ” devono essere precedute da una barra rovesciata e scritte come \”. Non ci sono problemi se scrivi \’per virgolette singole ‘.

s_dq = "a'b\"c"
print(s_dq)
# a'b"c

s_dq = "a\'b\"c"
print(s_dq)
# a'b"c

Poiché è solo una differenza di scrittura, i valori sono uguali in entrambi i casi.

s_sq = 'a\'b"c'
s_dq = "a'b\"c"

print(s_sq == s_dq)
# True

virgolette tripla:''', """

Le virgolette triple (”’, “””), ovvero tre virgolette singole ‘ o doppie virgolette “, forma anche una stringa (str).

Più righe

Si verifica un errore quando viene inserita una nuova riga in una stringa racchiusa tra virgolette singole o doppie. Per inserire una nuova riga, devi usare \n.

# s="abc
# xyz"
# SyntaxError: EOL while scanning string literal

s = 'abc\nxyz'
print(s)
# abc
# xyz

All’interno di una stringa racchiusa tra virgolette triple, le interruzioni di riga possono essere scritte così come sono.

s_tq = '''abc
xyz'''

print(s_tq)
# abc
# xyz

print(type(s_tq))
# <class 'str'>

Naturalmente, non deve contenere interruzioni di riga.

s_tq = '''abc'''
print(s_tq)
# abc

Virgolette singole e doppie

Puoi usare “tra tre virgolette singole ”’ e ‘tra tre virgolette doppie “””. I valori sono uguali in entrambi i casi.

s_tq_sq = '''\'abc\'
"xyz"'''

print(s_tq_sq)
# 'abc'
# "xyz"

s_tq_dq = """'abc'
\"xyz\""""

print(s_tq_dq)
# 'abc'
# "xyz"

print(s_tq_sq == s_tq_dq)
# True

Rientro

Se gli spazi vengono inseriti all’inizio di una riga in modo che corrisponda al rientro, la stringa creata include gli spazi.

s_tq = '''abc
          xyz'''

print(s_tq)
# abc
#           xyz

C’è un modo per scrivere quanto segue usando l’avanzamento riga e le parentesi.

s_multi = ('abc\n'
           'xyz')

print(s_multi)
# abc
# xyz

Vedere il seguente articolo per i dettagli.

Converti altri tipi in stringhe:str()

Puoi usare str() per utilizzare oggetti di altri tipi in stringhe (str).

str() restituisce il risultato del metodo __str()__ dell’oggetto target. Se il suo tipo non ha un metodo __str()__ definito, restituisce il risultato di repr().

Di seguito sono riportati alcuni esempi di tipi tipici.

Converti i numeri in stringhe

I numeri interi int e in virgola mobile float possono essere convertiti in stringhe str con str().

i = 100

s_i = str(i)
print(s_i)
# 100

print(type(s_i))
# <class 'str'>

f = 0.123

s_f = str(f)
print(s_f)
# 0.123

print(type(s_f))
# <class 'str'>

Ad esempio, int può essere scritto in esadecimale, float in esponenziale e così via, ma quando viene convertito in una stringa con str(), viene convertito in stringhe decimali standard.

i = 0xFF
print(i)
# 255

s_i = str(i)
print(s_i)
# 255

f = 1.23e+10
print(f)
# 12300000000.0

s_f = str(f)
print(s_f)
# 12300000000.0

Utilizzare la funzione incorporata format() per convertirlo in una stringa del formato desiderato.

s_i_format = format(i, '#X')
print(s_i_format)
# 0XFF

s_f_format = format(f, '.2e')
print(s_f_format)
# 1.23e+10

Se desideri inviare una stringa di numeri in valori numerici, consulta il seguente articolo.

Converti elenchi e dizionari in stringhe

Liste list e dizionari dict possono anche essere convertiti in stringhe str con str().

l = [0, 1, 2]

s_l = str(l)
print(s_l)
# [0, 1, 2]

print(type(s_l))
# <class 'str'>

d = {'a': 1,
     'b': 2,
     'c': 3}

s_d = str(d)

print(s_d)
# {'a': 1, 'b': 2, 'c': 3}

print(type(s_d))

Puoi usare pformat() del modulo pprint della libreria standard per convertirlo in una stringa ben formata.

import pprint

dl = {'a': 1, 'b': 2, 'c': [100, 200, 300]}

s_dl = str(dl)
print(s_dl)
# {'a': 1, 'b': 2, 'c': [100, 200, 300]}

p_dl = pprint.pformat(dl, width=10)
print(p_dl)
# {'a': 1,
#  'b': 2,
#  'c': [100,
#        200,
#        300]}

print(type(p_dl))
# <class 'str'>

Per ulteriori informazioni su pprint, vedere il seguente articolo.