Le f-string sono disponibili da Python 3.6 e sono molto utili per la formattazione delle stringhe:
>>> n='you'
>>> f'hello {n}, how are you?'
'hello you, how are you?'
Maggiori informazioni su di essi nelle f-Strings di Python 3: sintassi di formattazione delle stringhe migliorata (Guida) . Ho trovato uno schema interessante:
Nota che l'uso di parentesi graffe multiple comporterà la presenza di sole parentesi graffe singole nella stringa:
>>> f"{{{74}}}" '{74}'
Tuttavia, puoi ottenere più parentesi graffe da mostrare se usi più di triple parentesi:
>>> f"{{{{74}}}}" '{{74}}'
E questo è esattamente il caso:
>>> f'{74}'
'74'
>>> f'{{74}}'
'{74}'
Ora se passiamo da due {
a tre, il risultato è lo stesso:
>>> f'{{{74}}}'
'{74}' # same as f'{{74}}' !
Quindi abbiamo bisogno di un massimo di 4! ( {{{{
) per ottenere due parentesi graffe come output:
>>> f'{{{{74}}}}'
'{{74}}'
Perchè è questo? Cosa succede con due parentesi graffe se Python ne richiede una in più da quel momento in poi?
f'{2+2}'
ritorni 4, f'{{2+2}}'
ritorni 2 + 2, f'{{{2+2}}}'
➝ {4}, f'{{{{2+2}}}}'
➝ {{2 + 2}} e così via. Ha senso, ma si confonde un po 'a prima vista.
f'{74}'
è uguale a f'74'
.
str.format
fa.
"{74}".format(...)
richiederebbe una sequenza con almeno 74 elementi.
f"{{2+2}}"
ef"{{{2+2}}}"
, che sono'{2+2}'
e'{4}'
rispettivamente