Tutorial sul Python - Tipo di dati - Stringa di dati
- Creare stringhe in Python
- Elementi di accesso delle stringhe
- Operazioni con la stringa Python
- Funzioni integrate applicabili alle stringhe
- Formattazione delle stringhe Python
-
Il metodo
format()
Stringa
In questa sezione tratteremo il tipo di dati Python String in questa sezione.
Una stringa è una sequenza di caratteri, rappresentata da dati binari nel computer. E in Python, una stringa è un insieme di caratteri unicode
.
Creare stringhe in Python
Una stringa può essere creata usando virgolette singole o doppie. Una stringa a più righe può essere creata anche utilizzando le virgolette triple.
x = "String of characters"
x = """Multiline
string"""
Elementi di accesso delle stringhe
L’operatore di taglio []
e usato per accedere ai caratteri delle stringhe. L’indice parte da 0 come altri tipi di dati Python.
>>> x = 'Python Programming'
>>> print('x[0] =', x[0])
'P'
>>> print('x[4:15] =', x[4:15])
'on Programm'
>>> x[4] = 'l'
TypeError: 'str' object does not support item assignment
TypeError
.Indicizzazione negativa
È consentito l’uso di indici negativi per accedere ai caratteri della stringa. Per esempio, l’indice -1
si riferisce all’ultimo carattere. Allo stesso modo, l’indice -2
si riferisce al penultimo carattere.
>>> s = "Python"
>>> print(s[-1])
'n'
>>> print(s[-2])
'o'
>>> print(s[-3])
'h'
Cancellare i caratteri da una stringa
Poiché le stringhe sono immutabili, i caratteri di una stringa non possono essere cancellati. Ma è possibile assegnare una nuova stringa allo stesso nome. Questo è dimostrato nel codice sottostante:
>>> s = 'Python'
>>> s = 'Program'
>>> s
'Program'
L’intera stringa può essere cancellata utilizzando la parola chiave del
:
>>> del s
Operazioni con la stringa Python
Ci sono una serie di operazioni che possono essere eseguite sulle stringhe; alcune di esse sono le seguenti:
Concatenare due o più corde
Due o più stringhe possono essere concatenate utilizzando l’operatore +
.
>>> s1 = 'Python '
>>> s2 = 'Programming'
>>> print(s1 + s2)
'Python Programming'
Se si scrivono due stringhe insieme, si concatenano le stringhe come fa l’operatore +
:
>>> print('Python ' 'Programming')
'Python Programming'
La parentesi può anche essere usata per concatenare due stringhe quando le stringhe sono in più righe.
>>> s = ('Python '
'Programming')
>>> s
'Pyhton Programming'
Iterare attraverso le stringhe
È possibile iterare attraverso una lista utilizzando il bucle for
loop:
s = "Python"
for i in s:
print(i)
P
y
t
h
o
n
Controllo delle stringhe di appartenenza
La parola chiave in
è usata per verificare l’esistenza di una sottostringa in una stringa.
>>> s = 'Python'
>>> print('a' in s)
False
>>> print('o' in s)
True
Funzioni integrate applicabili alle stringhe
Le funzioni che vengono applicate ad altri tipi di sequenze possono essere applicabili anche alle stringhe. Le funzioni comunemente usate sono len()
per trovare il numero di caratteri in una stringa, e enumerate()
che restituisce un oggetto contenente indice e valore degli elementi della stringa come coppia.
Formattazione delle stringhe Python
Sequenza di fuga
Le sequenze di escape vengono utilizzate quando si vogliono stampare i simboli speciali (che hanno un significato speciale in Python) sul flusso di uscita. Ad esempio, se si vuole stampare:
James asked, "Do you know Andrew's place?"
Qui non si possono usare né le virgolette singole né quelle doppie, perché il testo contiene entrambe le virgolette. Se provi a mettere queste stringhe all’interno di virgolette singole o doppie, avrai SyntaxError
.
>>> print("James asked, "Do you know Andrew's place?"")
SyntaxError: invalid syntax
>>> print('James asked, "Do you know Andrew's place?"')
SyntaxError: invalid syntax
La soluzione a questo problema è di usare sia le virgolette triple che le sequenze di escape.
In Python, una sequenza di escape parte da una barra rovesciata. Una barra rovesciata è un’istruzione per l’interprete.
Se si utilizzano le virgolette singole nell’istruzione di stampa, allora tutte le singole virgolette del testo devono essere evacuate. Allo stesso modo, le doppie virgolette del testo devono essere sfuggite se si utilizzano le doppie virgolette per rappresentare una stringa.
# using triple quotation marks
print('''James asked, "Do you know Andrew's place?"''')
# escaping single quotes
print('James asked, "Do you know Andrew\'s place?"')
# escaping double quotes
print('James asked, "Do you know Andrew\'s place?"')
Si consideri la seguente tabella in cui sono descritte le sequenze di escape di Python:
Sequenza di escape | Descrizione |
---|---|
\\ |
sfugge al contraccolpo |
\' |
sfugge a singole citazioni |
\" |
sfugge alle doppie virgolette |
\a |
un allarme ASCII o un campanello |
\b |
genera un backspace |
\f |
genera Formfeed |
\n |
genera una nuova linea. |
\r |
ritorno in carrozza |
\t |
genera una linguetta orizzontale |
\v |
genera una linguetta verticale |
ooo |
carattere ottale ooo |
xHHH |
carattere esadecimale HH |
>>> print("C:\\User\\Python36-32\\Lib")
C:\User\Python36-32\Lib
>>> print("First Line\nSecond Line")
First Line
Second Line
Raw String r
to Ignore Escape Sequence
Si può ignorare la sequenza di escape in una stringa rendendola una stringa grezza che viene indicata da r
o R
prima della stringa.
In una stringa grezza le sequenze di escape vengono ignorate. Vedere il seguente esempio:
#without r
>>> print("C:\\User\\Python36-32\\Lib")
C:\User\Python36-32\Lib
#with r
>>> print(r"C:\\User\\Python36-32\\Lib")
C:\\User\\Python36-32\\Lib
Si può vedere qui che la sequenza di escape viene ignorata.
Il metodo format()
Stringa
Il metodo format()
è un potente strumento per formattare stringhe. Nelle stringhe formattate, si hanno dei segnaposto {}
che vengono sostituiti dal metodo format()
.
Gli argomenti posizionali e le parole chiave sono usati per specificare l’ordine della sostituzione.
#default placeholder
>>> s1 = "{}, {} and {}".format('Bread', 'Butter', 'Chocolate')
>>> print(s1)
'Bread, Butter and Chocolate'
#positional arguments
>>> s2 = "{1}, {2} and {0}".format('Bread', 'Butter', 'Chocolate')
>>> print(s2)
'Butter, Chocolate and Bread'
#keyword arguments
>>> s3 = "{a}, {x} and {c}".format(x = 'Bread', c = 'Butter', a = 'Chocolate')
>>> print(s3)
'Chocolate, Bread and Butter'
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook