Interpolazione di stringhe Python

In questo articolo impareremo a conoscere l'interpolazione di stringhe Python. Python supporta diversi modi per formattare le stringhe di testo e questi includono% -formatting, sys.format (), string.Template e f-strings.

L'interpolazione di stringhe è un processo che sostituisce i valori delle variabili in segnaposto in una stringa. Ad esempio, se hai un modello per salutare una persona come "Ciao (Nome della persona), piacere di conoscerti!", Vorresti sostituire il segnaposto per il nome della persona con un nome reale. Questo processo è chiamato interpolazione di stringhe.

stringhe

Python 3.6 ha aggiunto un nuovo metodo di interpolazione delle stringhe chiamato interpolazione letterale delle stringhe e introdotto un nuovo prefisso letterale f. Questo nuovo modo di formattare le stringhe è potente e facile da usare. Fornisce accesso alle espressioni Python incorporate all'interno di costanti stringa.

Esempio 1:

 name = 'World' program = 'Python' print(f'Hello (name)! This is (program)')

Quando eseguiamo il programma sopra, l'output sarà

Ciao mondo! Questo è Python

Nell'esempio precedente il prefisso letterale fdice a Python di ripristinare il valore di due stringhe di nome di variabile e di programma all'interno di parentesi graffe (). Quindi, quando printotteniamo l'output di cui sopra.

Questa nuova interpolazione di stringhe è potente in quanto possiamo incorporare espressioni Python arbitrarie con cui possiamo persino eseguire operazioni aritmetiche inline.

Esempio 2:

 a = 12 b = 3 print(f'12 multiply 3 is (a * b).')

Quando eseguiamo il programma sopra, l'output sarà

 12 moltiplica 3 fa 36.

Nel programma precedente abbiamo eseguito operazioni aritmetiche inline, che è possibile solo con questo metodo.

% -formattazione

Le stringhe in Python hanno un'operazione incorporata unica a cui è possibile accedere con l' %operatore. Usando %possiamo fare una semplice interpolazione di stringhe molto facilmente.

Esempio 3:

 print("%s %s" %('Hello','World',))

Quando eseguiamo il programma sopra, l'output sarà

 Ciao mondo

Nell'esempio sopra abbiamo usato due %sidentificatori di formato di stringa e due stringhe Helloe Worldtra parentesi (). Abbiamo Hello Worldcome output. %sl'identificatore di formato stringa dice a Python dove sostituire il valore.

La sintassi della formattazione delle stringhe cambia leggermente, se vogliamo fare più sostituzioni in una singola stringa e poiché l' %operatore accetta solo un argomento, dobbiamo racchiudere il lato destro in una tupla come mostrato nell'esempio seguente.

Esempio 4:

 name = 'world' program ='python' print('Hello %s! This is %s.'%(name,program))

Quando eseguiamo il programma sopra, l'output sarà

Ciao mondo! Questo è Python.

Nell'esempio precedente abbiamo utilizzato due stringhe nome variabile e programma. Abbiamo racchiuso entrambe le variabili tra parentesi ().

È anche possibile fare riferimento alle sostituzioni di variabili per nome nella nostra stringa di formato, se passiamo una mappatura %all'operatore:

Esempio 5:

 name = 'world' program ='python' print(‘Hello %(name)s! This is %(program)s.’%(name,program))

Quando eseguiamo il programma sopra, l'output sarà

Ciao mondo! Questo è Python.

Ciò rende le nostre stringhe di formato più facili da mantenere e più facili da modificare in futuro. Non dobbiamo preoccuparci dell'ordine dei valori che stiamo passando con l'ordine dei valori a cui si fa riferimento nella stringa di formato.

Str.format ()

In questa formattazione di stringa usiamo format()function su un oggetto stringa e parentesi graffe (), l'oggetto stringa in format()funzione viene sostituito al posto delle parentesi graffe (). Possiamo usare la format()funzione per eseguire una semplice formattazione posizionale, proprio come la %formattazione.

Esempio 6:

 name = 'world' print('Hello, ()'.format(name))

Quando eseguiamo il programma sopra, l'output sarà

 Ciao mondo

In questo esempio abbiamo usato le parentesi graffe ()e la format()funzione per passare l'oggetto nome. Abbiamo ottenuto il valore di nome al posto delle parentesi graffe ()nell'output.

Possiamo fare riferimento alle nostre sostituzioni di variabili per nome e usarle nell'ordine che vogliamo. Questa è una funzionalità piuttosto potente in quanto consente di riorganizzare l'ordine di visualizzazione senza modificare gli argomenti passati alla funzione di formattazione.

Esempio 7:

 name = 'world' program ='python' print('Hello (name)!This is(program).'.format(name=name,program=program))

Quando eseguiamo il programma sopra, l'output sarà

 Ciao mondo, questo è Python.

In this example we specified the variable substitutions place using the name of variable and pass the variable in format().

Template Strings

Template Strings is simpler and less powerful mechanism of string interpolation. We need to import Template class from Python’s built-in string module to use it.

Example 8:

 from string import Template name = 'world' program ='python' new = Template('Hello $name! This is $program.') print(new.substitute(name= name,program=program))

When we run the above program, the output will be

 Hello world! This is python.

In this example we import Template class from built-in string module and made a template which we used to pass two variable.

Key Points to Remember:

  1. %-format method is very old method for interpolation and is not recommended to use as it decrease the code readability.
  2. In str.format() method we pass the string object to the format() function for string interpolation.
  3. Nel metodo template creiamo un template importando la classe template dal modulo stringa integrato.
  4. Il metodo di interpolazione letterale delle stringhe è un potente metodo di interpolazione facile da usare e aumenta la leggibilità del codice.

Articoli interessanti...