# La concatenazione delle stringhe in Python: come unire fra loro le stringhe in Python

Python permette di utilizzare diversi metodi per combinare le sequenze di caratteri, ad esempio con l’operatore `+`, con `str.join()` oppure con la formattazione delle stringhe. La concatenazione delle stringhe in Python offre quindi la possibilità di **manipolare le sequenze di caratteri in modo flessibile ed efficiente**, il che è indispensabile in molti casi applicativi nello sviluppo software.

## Che cos’è la concatenazione delle stringhe in Python?

La concatenazione delle stringhe in Python è una tecnica che permette di unire le sequenze di caratteri (stringhe) **collegandole per creare un’unica stringa**. Questo processo è fondamentale nei casi in cui hai bisogno di modificare o formattare i testi in Python. Esistono varie possibilità per concatenare le [stringhe in Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/stringhe-in-python/): i due metodi più usati sono l’operatore `+` e il metodo `str.join()`.

È importante che la concatenazione delle stringhe sia efficiente, in particolare quando si lavora con grandi quantità di testi o con applicazioni in cui le prestazioni sono importanti. Al riguardo, è consigliabile **scegliere il metodo più adatto per la concatenazione** in modo da evitare colli di bottiglia indesiderati e ottimizzare l’efficienza del codice.

## I metodi per concatenare le stringhe in Python

È possibile concatenare le stringhe in Python in diversi modi. Alcuni dei metodi più usati sono:

- L’operatore `+`
- L’operatore `*`
- Il metodo `join()`
- L’operatore `%`
- La funzione `format()`
- Le f-string

### L’operatore `+`

Python ti permette di unire fra loro le stringhe per mezzo dell’operatore `+` **posizionandole direttamente una dopo l’altra**. Questo operatore collega le stringhe ottenendo come risultato una nuova stringa.

```python
str1 = "Hello, "
str2 = "World!"
result = str1 + str2
print(result)  # Output: Hello, World!
```

Utilizzando l’operatore `+`, nel nostro esempio abbiamo unito le stringhe `str1` e `str2`. La stringa risultante viene quindi memorizzata nella variabile `result`. Se si emette questa nuova stringa, il risultato visualizzato è `Hello, World!`.

Ricorda: ogni volta che esegui l’operatore `+` viene creata una nuova stringa, perché **le stringhe in Python sono immutabili**. Utilizzando la concatenazione per grandi quantità di stringhe, questa caratteristica può portare a cali delle prestazioni. In questi casi può convenire scegliere un metodo più efficiente come `str.join()`.

### L’operatore `*`

Utilizzando l’operatore `*` su una stringa,\* *si moltiplica la stringa per il numero indicato*\* e si ottiene una concatenazione ripetendo la stringa originale.

```python
str1 = "Hello! "
multiplier = 3
result = str1 * multiplier
print(result)  # Output: Hello! Hello! Hello!
```

In questo esempio la stringa `str1` viene moltiplicata per il valore 3. Il risultato è una concatenazione della stringa `str1` in Python per tre volte una dopo l’altra.

### Il metodo `join()`

Di norma si utilizza il metodo `join()` su una **stringa delimitatore** prendendo una sequenza di stringhe come argomento.

```python
words = ["Python", "is", "great"]
separator = " "
result = separator.join(words)
print(result)  # Output: Python is great
```

In questo esempio, `words` è una lista di stringhe. Il metodo `join()` si applica alla stringa delimitatore `separator`, che in questo caso è un **carattere spazio**. Il metodo unisce quindi gli elementi della lista `words` con il delimitatore indicato e genera una nuova stringa in cui ciascun elemento della lista è separato per mezzo del carattere spazio. Il risultato viene memorizzato nella variabile `result` e quindi emesso.

### Il metodo `%`

Il metodo `%` è noto anche come **formattazione delle stringhe con `%`**. Veniva utilizzato più spesso nelle versioni più vecchie di Python, mentre nelle versioni più recenti è stato sostituito dal metodo `str.format()` e dalla formattazione con f-string. Il metodo `%` permette di inserire valori in una stringa predefinita.

```python
name = "Alice"
age = 30
greeting = "My name is %s and I am %d years old." % (name, age)
print(greeting)  # Output: My name is Alice and I am 30 years old.
```

In questo esempio scegliamo `%s` per contrassegnare una stringa e `%d` per un numero intero. Il metodo `%` inserisce i valori di `name` e `age` nella stringa predefinita. I valori vengono **assegnati come tupla** fra le parentesi e inseriti negli appositi segnaposto all’interno della stringa.

### La funzione `format()`

La funzione `format()` permette di concatenare le stringhe in Python sostituendo i segnaposto di una stringa con dei valori. Si tratta di una possibilità più flessibile e meglio leggibile per inserire i valori in una stringa. A tal fine è possibile definire i **segnaposto mediante posizioni o nomi**.

```python
name = "Alice"
age = 30
greeting = "My name is {} and I am {} years old.".format(name, age)
print(greeting)  # Output: My name is Alice and I am 30 years old.
```

Qui la funzione `format()` prende i valori di `name` e `age` come argomenti e li inserisce nei segnaposto della stringa nell’ordine in cui vengono assegnati nella funzione.

### Le f-string

Le f-string sono un ulteriore metodo di [formattazione delle stringhe in Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/formattazione-delle-stringhe-in-python/) che puoi utilizzare per la concatenazione delle stringhe.

```python
name = "Alice"
age = 30
greeting = f"My name is {name} and I am {age} years old."
print(greeting)  # Output: My name is Alice and I am 30 years old.
```

Nel nostro esempio le f-string sono definite dalla lettera “f” posta prima della stringa. Le variabili `name` e `age` sono poste fra parentesi graffe all’interno della stringa. Durante l’esecuzione, Python sostituisce questi segnaposto con i valori effettivi delle variabili `name` e `age`.

Se vuoi approfondire la gestione delle stringhe in Python, ti consigliamo di seguire i tutorial sulle [sottostringhe in Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/le-sottostringhe-in-python/), [split in Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/split-in-python/), [string index in Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/metodo-index-per-stringhe-python/) e [come confrontare le stringhe in Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/confrontare-stringhe-in-python/) nella nostra guida.


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/concatenazione-delle-stringhe-in-python/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/concatenazione-delle-stringhe-in-python/) for AI/LLM consumption.