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.formatfa.
"{74}".format(...)richiederebbe una sequenza con almeno 74 elementi.
f"{{2+2}}"ef"{{{2+2}}}", che sono'{2+2}'e'{4}'rispettivamente