Corso
1. Introduzione
Cos'è la formattazione delle stringhe?
La formattazione delle stringhe consiste nel dare una forma leggibile e ordinata al testo usando le tecniche messe a disposizione dal linguaggio di programmazione. In Python esistono varie tecniche di formattazione delle stringhe. Ora esploreremo la nuova tecnica delle f-string.
Le f-string vengono valutate a runtime del programma. Sono rapide rispetto ai metodi precedenti.
Le f-string hanno una sintassi semplice rispetto alle tecniche di formattazione delle stringhe precedenti in Python. Esamineremo ogni aspetto di questa formattazione con diversi esempi.
Esegui e modifica il codice da questo tutorial online
Esegui codice1.1. Sintassi
Ogni istruzione f-string è composta da due parti: un carattere f o F e una stringa che vogliamo formattare. La stringa va racchiusa tra virgolette singole, doppie o triple.
Vediamo la sintassi.
## we can also use F, '', ''''', """"""'
f"string"
Al posto di string dobbiamo inserire la frase che vogliamo formattare.
2. Visualizzare le variabili
In passato usavamo soprattutto il metodo str.format() per formattare le stringhe. Ma i tempi sono cambiati: abbiamo un nuovo metodo per raddoppiare l'efficienza.
Le variabili tra le parentesi graffe { } vengono mostrate in output come in una normale istruzione print. Vediamo un esempio.
## declaring variables
name = "Datacamp"
type_of_company = "Educational"
## enclose your variable within the {} to display it's value in the output
print(f"{name} is an {type_of_company} company.")
Datacamp is an Educational company.
Abbiamo ottenuto in output i valori delle variabili. Visto? È facile. Possiamo anche sostituire la f con la F.
## declaring variables
name = "Datacamp"
type_of_company = "Educational"
## enclose your variable within the {} to display it's value in the output
print(F"{name} is an {type_of_company} company.")
Datacamp is an Educational company.
f minuscola o maiuscola funziona allo stesso modo.
3. Espressioni
E se potessimo valutare espressioni come operazioni aritmetiche, chiamate di funzione, ecc., all'interno di una stringa? Bello, vero? Sì! È davvero entusiasmante usare espressioni dentro una stringa. Le f-string ci permettono di valutare espressioni all'interno della stringa.
Inserisci semplicemente l'espressione tra { } per valutarla. Le f-string la valutano a runtime del programma. È una funzione eccellente che ti fa risparmiare tempo e codice.
Vediamo esempi dei diversi tipi di espressioni.
## arithmetic expression
print(f"{5 * 5}")
25
Possiamo anche chiamare funzioni dentro le { }. Definiamo una funzione greet() e richiamiamola nella f-string
def greet(name):
return "Hello, " + name
## calling the function using f-string
name = "Datacamp"
print(f"{greet(name)}")
Hello, Datacamp
Allo stesso modo, possiamo chiamare anche i metodi predefiniti. Vediamo.
## calling the 'title' method which makes the first letter of every word upper
string = "datacamp is an educational company."
print(f"{string.title()}")
Datacamp Is An Educational Company.
Cos'altro possiamo fare con le f-string? Possiamo visualizzare un oggetto? Sì. È lo stesso di quando mostriamo l'output delle variabili.
class Sample:
def __init__(self, name, age):
self.name = name
self.age = age
## this method will be called when we print the object
def __str__(self):
return f'{self.name} is {self.age} years old.'
john = Sample("John", 19)
## it'll wake up the __str__() method
print(f"{john}")
John is 19 years old.
4. Caratteri speciali
E se volessimo visualizzare caratteri speciali come {}, \', \"?, che in Python hanno significati particolari? Possiamo usare i caratteri di escape dentro le f-string? Vediamo le risposte a queste domande.
4.1. Virgolette
Nelle f-string possiamo usare qualsiasi tipo di virgolette {singole, doppie o triple}. Per stampare le virgolette dobbiamo usare il carattere di escape. Le espressioni nelle f-string non consentono il backslash. Va inserito all'esterno delle { }.
Vediamolo con degli esempi.
name = "Datacamp"
## displaying single quotations
print(f"Hello, \'{name}\'")
print()
## displaying double quotations
print(f"Hello, \"{name}\"")
Hello, 'Datacamp'
Hello, "Datacamp"
Vediamo altri tipi di virgolette nelle f-string.
f'{"Hello, Datacamp"}'
'Hello, Datacamp'
f"{'Hello, Datacamp'}"
'Hello, Datacamp'
f"""Hello, Datacamp"""
'Hello, Datacamp'
f'''Hello, Datacamp'''
'Hello, Datacamp'
Possiamo anche includere le { } all'interno delle virgolette triple.
Non puoi usare i backslash dentro le { } in una f-string. Se li includi nelle { } otterrai un errore.
print(f"{\"Datacamp\"}")
File "<ipython-input-60-b9a2502d6274>", line 1
print(f"{\"Datacamp\"}")
^
SyntaxError: f-string expression part cannot include a backslash
4.2. Parentesi graffe
Per stampare le parentesi graffe usando le f-string dobbiamo usare una doppia coppia di graffe. Vediamo un esempio.
print(f"{{Datacamp}}")
{Datacamp}
Se vuoi visualizzare due coppie di parentesi graffe usando le f-string, devi usarne quattro.
print(f"{{{{Datacamp}}}}")
{{Datacamp}}
5. Dizionari
Dobbiamo fare un po' di attenzione quando usiamo le chiavi di un dizionario nelle f-string. Devi usare un tipo di virgolette diverso tra la chiave del dizionario e la f-string. Non è consentito usare lo stesso tipo di virgolette per la chiave del dizionario e per la f-string.
person = {"name": "John", "age": 19}
print(f"{person['name']} is {person['age']} years old.")
John is 19 years old.
Non è consentito usarla come segue nel caso dei dizionari.
person = {"name": "John", "age": 19}
print(f'{person['name']} is {person['age']} years old.')
File "<ipython-input-65-6849ff0810ae>", line 2
print(f'{person['name']} is {person['age']} years old.')
^
SyntaxError: invalid syntax
Conclusione
Spero che questo tutorial ti abbia fatto scoprire qualcosa di nuovo in Python. Per saperne di più su stringhe e tecniche di formattazione precedenti, dai un'occhiata a questo tutorial su Datacamp. Dai un'occhiata anche al corso di DataCamp Regular Expressions in Python.
Buon coding :)

