Stringhe
Stringhe¶
Obiettivi della Lezione¶
- Comprendere cosa sono le stringhe in Python.
- Imparare come creare e manipolare le stringhe.
- Conoscere le principali operazioni e metodi associati alle stringhe.
- Applicare formattazioni avanzate sulle stringhe.
Introduzione¶
Le stringhe sono uno dei tipi di dati fondamentali in Python e in molti altri linguaggi di programmazione. Rappresentano sequenze di caratteri utilizzate per elaborare e memorizzare informazioni testuali. Dalla semplice visualizzazione di messaggi all’elaborazione di testi complessi, le stringhe sono uno strumento essenziale per qualsiasi sviluppatore Python.
Spiegazione Teorica¶
Cos’è una Stringa?¶
In Python, una stringa è una sequenza immutabile di caratteri racchiusa tra apici singoli ('...'
), doppi ("..."
), tripli apici singoli ('''...'''
) o tripli doppi apici ("""..."""
). Questa flessibilità permette di includere apici all’interno delle stringhe senza dover ricorrere a caratteri di escape complicati.
stringa1 = 'Ciao, mondo!'
stringa2 = "Python è fantastico!"
stringa3 = '''Questo è un testo
su più righe'''
Accesso ai Caratteri di una Stringa¶
Le stringhe, essendo sequenze, consentono l’accesso ai singoli caratteri tramite l’indice. Gli indici in Python partono da 0.
testo = "Python"
primo_carattere = testo[0] # 'P'
print("Il primo carattere è ", primo_carattere)
ultimo_carattere = testo[-1] # 'n'
print("l'ultimo carattere è ", ultimo_carattere)
Il primo carattere è P l'ultimo carattere è n
Slicing delle Stringhe¶
Lo slicing permette di ottenere sottostringhe specificando un intervallo di indici.
testo = "Programmare"
sottostringa = testo[0:7] # 'Program'
sottostringa
'Program'
Stringhe Immutabili¶
Le stringhe in Python sono immutabili, il che significa che non è possibile modificare un carattere specifico dopo la creazione della stringa.
testo = "Ciao"
# Questo genererà un errore:
# testo[0] = 'B' # TypeError
Operatori con le Stringhe¶
- Concatenazione (
+
): unisce due stringhe.saluto = "Buongiorno, " + "come stai?"
- Ripetizione (
*
): ripete una stringa per un numero specificato di volte.risata = "ha" * 3 # 'hahaha'
Principali Metodi delle Stringhe¶
len(stringa)
: restituisce la lunghezza della stringa.stringa.lower()
: converte tutti i caratteri in minuscolo.stringa.upper()
: converte tutti i caratteri in maiuscolo.stringa.strip()
: rimuove spazi bianchi iniziali e finali.stringa.replace("vecchio", "nuovo")
: sostituisce una sottostringa con un’altra.stringa.split(separatore)
: divide la stringa in una lista utilizzando il separatore specificato.
nome = "Alice"
cognome = "Rossi"
nome_completo = nome + " " + cognome
print("Nome completo:", nome_completo)
print("In maiuscolo:", nome_completo.upper())
print("Numero di caratteri:", len(nome_completo))
Nome completo: Alice Rossi In maiuscolo: ALICE ROSSI Numero di caratteri: 11
Spiegazione:
- Concateniamo nome e cognome utilizzando l’operatore
+
. - Convertiamo il nome completo in maiuscolo con
.upper()
. - Utilizziamo
len()
per ottenere la lunghezza totale della stringa.
Esempio 2: Utilizzo di strip()
e replace()
¶
frase = " Python è divertente! "
frase_pulita = frase.strip()
print("Frase originale:", frase)
print("Frase pulita:", frase_pulita)
frase_modificata = frase_pulita.replace("divertente", "potente")
print("Frase modificata:", frase_modificata)
Frase originale: Python è divertente! Frase pulita: Python è divertente! Frase modificata: Python è potente!
Spiegazione:
- Rimuoviamo gli spazi iniziali e finali con
.strip()
. - Sostituiamo la parola “divertente” con “potente” utilizzando
.replace()
.
Esempio 3: Divisione di una Stringa con split()
¶
dati = "Mario,Rossi,30,Ingegnere"
lista_dati = dati.split(",")
print("Lista dei dati:", lista_dati)
print("Nome:", lista_dati[0])
print("Età:", lista_dati[2])
Lista dei dati: ['Mario', 'Rossi', '30', 'Ingegnere'] Nome: Mario Età: 30
Spiegazione:
- Utilizziamo
.split(",")
per dividere la stringa al carattere virgola. - Accediamo agli elementi della lista risultante tramite gli indici.
Esercizi Interattivi¶
Esercizio 1: Formattazione di Stringhe¶
Chiedi all’utente di inserire il suo nome e poi stampa un messaggio di benvenuto in questo formato:
Ciao, [NOME]! Benvenuto nel corso di Python.
Suggerimento: Usa la funzione input()
per ottenere l’input dall’utente.
Esercizio 2: Conta le Vocali¶
Scrivi un programma che conti il numero di vocali presenti in una stringa inserita dall’utente.
Esempio:
Inserisci una frase: Programmare in Python
Numero di vocali: 7
Esercizio 3: Palindromo¶
Verifica se una parola inserita dall’utente è un palindromo (si legge uguale da sinistra a destra e da destra a sinistra).
Esempio:
Inserisci una parola: radar
"radar" è un palindromo.
Buone Pratiche e Consigli¶
Utilizza Formattazioni Moderne: Per inserire variabili all’interno di stringhe, preferisci l’uso di
f-strings
(formatted string literals) introdotte in Python 3.6.nome = "Lucia" print(f"Ciao, {nome}!")
Gestione delle Stringhe su Più Linee: Per stringhe lunghe o testi su più linee, utilizza i tripli apici.
testo_lungo = """Questo è un esempio di testo che si estende su più linee."""
Evitare Concatenzioni Inefficienti: Quando devi costruire stringhe complesse, considera l’uso di
join()
su liste piuttosto che concatenare con+
in un ciclo.parole = ["Python", "è", "potente"] frase = " ".join(parole)
Consapevolezza dell’Immutabilità: Ricorda che le operazioni sulle stringhe restituiscono nuove stringhe; l’originale rimane inalterata a meno che non venga riassegnata.
Conclusione¶
Le stringhe sono fondamentali in Python per la gestione e la manipolazione di dati testuali. Conoscere le varie operazioni e metodi disponibili permette di scrivere codice più efficiente e leggibile. Praticando con gli esempi e gli esercizi proposti, acquisirai dimestichezza nella gestione delle stringhe e sarai pronto ad affrontare sfide più complesse.
Risorse Aggiuntive¶
- Documentazione Ufficiale Python: Text Sequence Type — str
- Libro Consigliato: Python Crash Course di Eric Matthes
- Video Tutorial: F-Strings – How to Use Them and Advanced String Formatting